{
  "contractName": "Deed",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "creationDate",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "registrar",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "value",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "previousOwner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnerChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "DeedClosed",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "setOwner",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newRegistrar",
          "type": "address"
        }
      ],
      "name": "setRegistrar",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newValue",
          "type": "uint256"
        },
        {
          "name": "throwOnFailure",
          "type": "bool"
        }
      ],
      "name": "setBalance",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "refundRatio",
          "type": "uint256"
        }
      ],
      "name": "closeDeed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "destroyDeed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526040516020806105cd833981016040525160028054600160a060020a03909216600160a060020a031992831617905560008054909116331790554260019081556005805460ff1916909117905534600455610569806100646000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305b3441081146100a85780630b5ab3d5146100cf57806313af4035146100e65780632b20e397146101145780633fa4f24514610152578063674f220f146101675780638da5cb5b1461017c578063b0c8097214610191578063bbe42771146101ae578063faab9d39146101c6575b600080fd5b3480156100b457600080fd5b506100bd6101f4565b60408051918252519081900360200190f35b3480156100db57600080fd5b506100e46101fa565b005b3480156100f257600080fd5b506100e473ffffffffffffffffffffffffffffffffffffffff6004351661024c565b34801561012057600080fd5b5061012961031c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561015e57600080fd5b506100bd610338565b34801561017357600080fd5b5061012961033e565b34801561018857600080fd5b5061012961035a565b34801561019d57600080fd5b506100e46004356024351515610376565b3480156101ba57600080fd5b506100e4600435610410565b3480156101d257600080fd5b506100e473ffffffffffffffffffffffffffffffffffffffff600435166104d2565b60015481565b60055460ff161561020a57600080fd5b60025460405173ffffffffffffffffffffffffffffffffffffffff90911690303180156108fc02916000818181858888f193505050501561024a5761deadff5b565b60005473ffffffffffffffffffffffffffffffffffffffff16331461027057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116151561029257600080fd5b60028054600380547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff808516919091179092559084169116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461039a57600080fd5b60055460ff1615156103ab57600080fd5b8160045410156103ba57600080fd5b600482905560025460405173ffffffffffffffffffffffffffffffffffffffff90911690303184900380156108fc02916000818181858888f193505050501580156104025750805b1561040c57600080fd5b5050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461043457600080fd5b60055460ff16151561044557600080fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405161dead906103e83031848203020480156108fc02916000818181858888f19350505050151561049e57600080fd5b6040517fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1390600090a16104cf6101fa565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104f657600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790555600a165627a7a723058209703dd8cf4f5474216d07ea629510ee6a100df29c1f59be43452a35823e635760029",
  "deployedBytecode": "0x6080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305b3441081146100a85780630b5ab3d5146100cf57806313af4035146100e65780632b20e397146101145780633fa4f24514610152578063674f220f146101675780638da5cb5b1461017c578063b0c8097214610191578063bbe42771146101ae578063faab9d39146101c6575b600080fd5b3480156100b457600080fd5b506100bd6101f4565b60408051918252519081900360200190f35b3480156100db57600080fd5b506100e46101fa565b005b3480156100f257600080fd5b506100e473ffffffffffffffffffffffffffffffffffffffff6004351661024c565b34801561012057600080fd5b5061012961031c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561015e57600080fd5b506100bd610338565b34801561017357600080fd5b5061012961033e565b34801561018857600080fd5b5061012961035a565b34801561019d57600080fd5b506100e46004356024351515610376565b3480156101ba57600080fd5b506100e4600435610410565b3480156101d257600080fd5b506100e473ffffffffffffffffffffffffffffffffffffffff600435166104d2565b60015481565b60055460ff161561020a57600080fd5b60025460405173ffffffffffffffffffffffffffffffffffffffff90911690303180156108fc02916000818181858888f193505050501561024a5761deadff5b565b60005473ffffffffffffffffffffffffffffffffffffffff16331461027057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116151561029257600080fd5b60028054600380547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff808516919091179092559084169116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461039a57600080fd5b60055460ff1615156103ab57600080fd5b8160045410156103ba57600080fd5b600482905560025460405173ffffffffffffffffffffffffffffffffffffffff90911690303184900380156108fc02916000818181858888f193505050501580156104025750805b1561040c57600080fd5b5050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461043457600080fd5b60055460ff16151561044557600080fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405161dead906103e83031848203020480156108fc02916000818181858888f19350505050151561049e57600080fd5b6040517fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1390600090a16104cf6101fa565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104f657600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790555600a165627a7a723058209703dd8cf4f5474216d07ea629510ee6a100df29c1f59be43452a35823e635760029",
  "sourceMap": "618:2162:11:-;;;1064:179;;;;;;;;;;;;1112:5;:14;;-1:-1:-1;;;;;1112:14:11;;;-1:-1:-1;;;;;;1112:14:11;;;;;;:5;1136:22;;;;;1148:10;1136:22;;;1183:3;1112:14;1168:18;;;1196:6;:13;;-1:-1:-1;;1196:13:11;;;;;;1227:9;1219:5;:17;618:2162;;;;;;",
  "deployedSourceMap": "618:2162:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;704:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;704:24:11;;;;;;;;;;;;;;;;;;;;2399:379;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2399:379:11;;;;;;1249:243;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1249:243:11;;;;;;;638:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;638:24:11;;;;;;;;;;;;;;;;;;;;;;;794:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;794:17:11;;;;760:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;760:28:11;;;;734:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;734:20:11;;;;1603:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1603:329:11;;;;;;;;;2089:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2089:214:11;;;;;1498:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1498:99:11;;;;;;;704:24;;;;:::o;2399:379::-;2436:6;;;;2432:17;;;2444:5;;;2432:17;2703:5;;:24;;:5;;;;;2714:4;:12;2703:24;;;;;:5;:24;:5;:24;2714:12;2703:5;:24;;;;;;;2699:73;;;692:6;2743:18;2699:73;2399:379::o;1249:243::-;952:9;;;;938:10;:23;934:34;;963:5;;;934:34;1313:13;;;;1309:24;;;1328:5;;;1309:24;1359:5;;;1343:13;:21;;;;;;1359:5;;;;1343:21;;;;;;;1437:16;;;;;;;;;;1463:22;;;;;;;;;;;;;;;;1249:243;:::o;638:24::-;;;;;;:::o;794:17::-;;;;:::o;760:28::-;;;;;;:::o;734:20::-;;;;;;:::o;1603:329::-;952:9;;;;938:10;:23;934:34;;963:5;;;934:34;1027:6;;;;1026:7;1022:18;;;1035:5;;;1022:18;1765:8;1757:5;;:16;1753:27;;;1775:5;;;1753:27;1790:5;:16;;;1865:5;;:35;;:5;;;;;1876:4;:12;:23;;;1865:35;;;;;:5;:35;:5;:35;1876:23;1865:5;:35;;;;;;;1864:36;:54;;;;;1904:14;1864:54;1860:65;;;1920:5;;;1860:65;1603:329;;:::o;2089:214::-;952:9;;;;938:10;:23;934:34;;963:5;;;934:34;1027:6;;;;1026:7;1022:18;;;1035:5;;;1022:18;2161:6;:14;;;;;;2191:53;;692:6;;2239:4;2225;:12;2203:18;;;2202:35;2201:42;2191:53;;;;;-1:-1:-1;2191:53:11;-1:-1:-1;2191:53:11;2201:42;692:6;2191:53;;;;;;;2189:55;2185:66;;;2246:5;;;2185:66;2261:12;;;;;;;2283:13;:11;:13::i;:::-;2089:214;:::o;1498:99::-;952:9;;;;938:10;:23;934:34;;963:5;;;934:34;1566:9;:24;;;;;;;;;;;;;;;1498:99::o",
  "source": "pragma solidity ^0.4.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 \"@aragon/os/contracts/lib/ens/AbstractENS.sol\";\n\n\n/**\n * @title Deed to hold ether in exchange for ownership of a node\n * @dev The deed can be controlled only by the registrar and can only send ether back to the owner.\n */\ncontract Deed {\n    address public registrar;\n    address constant burn = 0xdead;\n    uint public creationDate;\n    address public owner;\n    address public previousOwner;\n    uint public value;\n    event OwnerChanged(address newOwner);\n    event DeedClosed();\n    bool active;\n\n    modifier onlyRegistrar {\n        if (msg.sender != registrar) throw;\n        _;\n    }\n\n    modifier onlyActive {\n        if (!active) throw;\n        _;\n    }\n\n    function Deed(address _owner) payable {\n        owner = _owner;\n        registrar = msg.sender;\n        creationDate = now;\n        active = true;\n        value = msg.value;\n    }\n\n    function setOwner(address newOwner) onlyRegistrar {\n        if (newOwner == 0) throw;\n        previousOwner = owner;  // This allows contracts to check who sent them the ownership\n        owner = newOwner;\n        OwnerChanged(newOwner);\n    }\n\n    function setRegistrar(address newRegistrar) onlyRegistrar {\n        registrar = newRegistrar;\n    }\n\n    function setBalance(uint newValue, bool throwOnFailure) onlyRegistrar onlyActive {\n        // Check if it has enough balance to set the value\n        if (value < newValue) throw;\n        value = newValue;\n        // Send the difference to the owner\n        if (!owner.send(this.balance - newValue) && throwOnFailure) throw;\n    }\n\n    /**\n     * @dev Close a deed and refund a specified fraction of the bid value\n     *\n     * @param refundRatio The amount*1/1000 to refund\n     */\n    function closeDeed(uint refundRatio) onlyRegistrar onlyActive {\n        active = false;\n        if (! burn.send(((1000 - refundRatio) * this.balance)/1000)) throw;\n        DeedClosed();\n        destroyDeed();\n    }\n\n    /**\n     * @dev Close a deed and refund a specified fraction of the bid value\n     */\n    function destroyDeed() {\n        if (active) throw;\n        \n        // Instead of selfdestruct(owner), invoke owner fallback function to allow\n        // owner to log an event if desired; but owner should also be aware that\n        // its fallback function can also be invoked by setBalance\n        if (owner.send(this.balance)) {\n            selfdestruct(burn);\n        }\n    }\n}\n\n/**\n * @title Registrar\n * @dev The registrar handles the auction process for each subnode of the node it owns.\n */\ncontract Registrar {\n    AbstractENS public ens;\n    bytes32 public rootNode;\n\n    mapping (bytes32 => entry) _entries;\n    mapping (address => mapping(bytes32 => Deed)) public sealedBids;\n    \n    enum Mode { Open, Auction, Owned, Forbidden, Reveal, NotYetAvailable }\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    event AuctionStarted(bytes32 indexed hash, uint registrationDate);\n    event NewBid(bytes32 indexed hash, address indexed bidder, uint deposit);\n    event BidRevealed(bytes32 indexed hash, address indexed owner, uint value, uint8 status);\n    event HashRegistered(bytes32 indexed hash, address indexed owner, uint value, uint registrationDate);\n    event HashReleased(bytes32 indexed hash, uint value);\n    event HashInvalidated(bytes32 indexed hash, string indexed name, uint value, uint registrationDate);\n\n    struct entry {\n        Deed deed;\n        uint registrationDate;\n        uint value;\n        uint 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) constant returns (Mode) {\n        var 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    modifier inState(bytes32 _hash, Mode _state) {\n        if (state(_hash) != _state) throw;\n        _;\n    }\n\n    modifier onlyOwner(bytes32 _hash) {\n        if (state(_hash) != Mode.Owned || msg.sender != _entries[_hash].deed.owner()) throw;\n        _;\n    }\n\n    modifier registryOpen() {\n        if (now < registryStarted  || now > registryStarted + 4 years || ens.owner(rootNode) != address(this)) throw;\n        _;\n    }\n\n    function entries(bytes32 _hash) constant returns (Mode, address, uint, uint, uint) {\n        entry h = _entries[_hash];\n        return (state(_hash), h.deed, h.registrationDate, h.value, h.highestBid);\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    function Registrar(AbstractENS _ens, bytes32 _rootNode, uint _startDate) {\n        ens = _ens;\n        rootNode = _rootNode;\n        registryStarted = _startDate > 0 ? _startDate : now;\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 constant returns (uint max) {\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 constant returns (uint min) {\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 s) internal constant 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        for (uint len = 0; 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     * @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) constant 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) constant returns (uint timestamp) {\n        return registryStarted + ((launchLength * (uint(_hash) >> 128)) >> 128);\n        // Right shift operator: a >> b == a / 2**b\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 Start an auction for an available hash\n     *\n     * @param _hash The hash to start an auction on\n     */\n    function startAuction(bytes32 _hash) registryOpen() {\n        var mode = state(_hash);\n        if (mode == Mode.Auction) return;\n        if (mode != Mode.Open) throw;\n\n        entry newAuction = _entries[_hash];\n        newAuction.registrationDate = now + totalAuctionLength;\n        newAuction.value = 0;\n        newAuction.highestBid = 0;\n        AuctionStarted(_hash, newAuction.registrationDate);\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[] _hashes)  {\n        for (uint i = 0; i < _hashes.length; i ++) {\n            startAuction(_hashes[i]);\n        }\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) constant returns (bytes32 sealedBid) {\n        return sha3(hash, owner, value, salt);\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) payable {\n        if (address(sealedBids[msg.sender][sealedBid]) > 0) throw;\n        if (msg.value < minPrice) throw;\n\n        // Creates a new hash contract with the owner\n        Deed newBid = (new Deed).value(msg.value)(msg.sender);\n        sealedBids[msg.sender][sealedBid] = newBid;\n        NewBid(sealedBid, msg.sender, msg.value);\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[] hashes, bytes32 sealedBid) 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) {\n        bytes32 seal = shaBid(_hash, msg.sender, _value, _salt);\n        Deed bid = sealedBids[msg.sender][seal];\n        if (address(bid) == 0) throw;\n\n        sealedBids[msg.sender][seal] = Deed(0);\n        entry h = _entries[_hash];\n        uint value = min(_value, bid.value());\n        bid.setBalance(value, true);\n\n        var auctionState = state(_hash);\n        if (auctionState == Mode.Owned) {\n            // Too late! Bidder loses their bid. Gets 0.5% back.\n            bid.closeDeed(5);\n            BidRevealed(_hash, msg.sender, value, 1);\n        } else if (auctionState != Mode.Reveal) {\n            // Invalid phase\n            throw;\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            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) != 0) {\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            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            BidRevealed(_hash, msg.sender, value, 3);\n        } else {\n            // Bid doesn't affect auction\n            bid.closeDeed(995);\n            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) {\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        if (address(bid) == 0\n            || now < bid.creationDate() + totalAuctionLength + 2 weeks) throw;\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        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) onlyOwner(_hash) {\n        entry 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        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 newOwner) onlyOwner(_hash) {\n        if (newOwner == 0) throw;\n\n        entry 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) onlyOwner(_hash) {\n        entry h = _entries[_hash];\n        Deed deedContract = h.deed;\n        if (now < h.registrationDate + 1 years && ens.owner(rootNode) == address(this)) throw;\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n\n        _tryEraseSingleNode(_hash);\n        deedContract.closeDeed(1000);\n        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 unhashedName) inState(sha3(unhashedName), Mode.Owned) {\n        if (strlen(unhashedName) > 6) throw;\n        bytes32 hash = sha3(unhashedName);\n\n        entry h = _entries[hash];\n\n        _tryEraseSingleNode(hash);\n\n        if (address(h.deed) != 0) {\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        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     *        [sha3('foo'), sha3('bar')].\n     */\n    function eraseNode(bytes32[] labels) {\n        if (labels.length == 0) throw;\n        if (state(labels[labels.length - 1]) == Mode.Owned) throw;\n\n        _eraseNodeHierarchy(labels.length - 1, labels, rootNode);\n    }\n\n    function _tryEraseSingleNode(bytes32 label) internal {\n        if (ens.owner(rootNode) == address(this)) {\n            ens.setSubnodeOwner(rootNode, label, address(this));\n            var node = sha3(rootNode, label);\n            ens.setResolver(node, 0);\n            ens.setOwner(node, 0);\n        }\n    }\n\n    function _eraseNodeHierarchy(uint idx, bytes32[] labels, bytes32 node) internal {\n        // Take ownership of the node\n        ens.setSubnodeOwner(node, labels[idx], address(this));\n        node = sha3(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, 0);\n        ens.setOwner(node, 0);\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) onlyOwner(_hash) {\n        var registrar = ens.owner(rootNode);\n        if (registrar == address(this)) throw;\n\n        // Migrate the deed\n        entry 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) {\n        hash; deed; registrationDate; // Don't warn about unused variables\n    }\n\n}\n",
  "sourcePath": "/Users/brett/Development/aragon/aragon-id/contracts/test/ens/Registrar.sol",
  "ast": {
    "absolutePath": "/Users/brett/Development/aragon/aragon-id/contracts/test/ens/Registrar.sol",
    "exportedSymbols": {
      "Deed": [
        1596
      ],
      "Registrar": [
        3023
      ]
    },
    "id": 3024,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1403,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:11"
      },
      {
        "absolutePath": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
        "file": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
        "id": 1404,
        "nodeType": "ImportDirective",
        "scope": 3024,
        "sourceUnit": 3408,
        "src": "388:54:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Deed to hold ether in exchange for ownership of a node\n@dev The deed can be controlled only by the registrar and can only send ether back to the owner.",
        "fullyImplemented": true,
        "id": 1596,
        "linearizedBaseContracts": [
          1596
        ],
        "name": "Deed",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1406,
            "name": "registrar",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "638:24:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1405,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "638:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1409,
            "name": "burn",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "668:30:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1407,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "668:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307864656164",
              "id": 1408,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "692:6:11",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_57005_by_1",
                "typeString": "int_const 57005"
              },
              "value": "0xdead"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1411,
            "name": "creationDate",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "704:24:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1410,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "704:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1413,
            "name": "owner",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "734:20:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1412,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "734:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1415,
            "name": "previousOwner",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "760:28:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1414,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "760:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1417,
            "name": "value",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "794:17:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1416,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "794:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1421,
            "name": "OwnerChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1419,
                  "indexed": false,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1421,
                  "src": "836:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1418,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "835:18:11"
            },
            "src": "817:37:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1423,
            "name": "DeedClosed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1422,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "875:2:11"
            },
            "src": "859:19:11"
          },
          {
            "constant": false,
            "id": 1425,
            "name": "active",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "883:11:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 1424,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "883:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1434,
              "nodeType": "Block",
              "src": "924:62:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1427,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "938:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1428,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "938:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1429,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "952:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "938:23:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1432,
                  "nodeType": "IfStatement",
                  "src": "934:34:11",
                  "trueBody": {
                    "id": 1431,
                    "nodeType": "Throw",
                    "src": "963:5:11"
                  }
                },
                {
                  "id": 1433,
                  "nodeType": "PlaceholderStatement",
                  "src": "978:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1435,
            "name": "onlyRegistrar",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "924:0:11"
            },
            "src": "901:85:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1442,
              "nodeType": "Block",
              "src": "1012:46:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "1026:7:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 1437,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "1027:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1440,
                  "nodeType": "IfStatement",
                  "src": "1022:18:11",
                  "trueBody": {
                    "id": 1439,
                    "nodeType": "Throw",
                    "src": "1035:5:11"
                  }
                },
                {
                  "id": 1441,
                  "nodeType": "PlaceholderStatement",
                  "src": "1050:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1443,
            "name": "onlyActive",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1436,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1012:0:11"
            },
            "src": "992:66:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1470,
              "nodeType": "Block",
              "src": "1102:141:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1448,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1112:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1449,
                      "name": "_owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1445,
                      "src": "1120:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1112:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1451,
                  "nodeType": "ExpressionStatement",
                  "src": "1112:14:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1452,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "1136:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1453,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "1148:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1454,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1148:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1136:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1456,
                  "nodeType": "ExpressionStatement",
                  "src": "1136:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1457,
                      "name": "creationDate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1411,
                      "src": "1168:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1458,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3424,
                      "src": "1183:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1168:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1460,
                  "nodeType": "ExpressionStatement",
                  "src": "1168:18:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1461,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "1196:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 1462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1205:4:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1196:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1464,
                  "nodeType": "ExpressionStatement",
                  "src": "1196:13:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1468,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1465,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1219:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1466,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "1227:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1467,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1227:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1219:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1469,
                  "nodeType": "ExpressionStatement",
                  "src": "1219:17:11"
                }
              ]
            },
            "documentation": null,
            "id": 1471,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "Deed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1445,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1471,
                  "src": "1078:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1444,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1078:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1077:16:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 1447,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1102:0:11"
            },
            "scope": 1596,
            "src": "1064:179:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1495,
              "nodeType": "Block",
              "src": "1299:193:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1478,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1473,
                      "src": "1313:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1325:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1313:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1482,
                  "nodeType": "IfStatement",
                  "src": "1309:24:11",
                  "trueBody": {
                    "id": 1481,
                    "nodeType": "Throw",
                    "src": "1328:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1483,
                      "name": "previousOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1415,
                      "src": "1343:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1484,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1359:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1343:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1486,
                  "nodeType": "ExpressionStatement",
                  "src": "1343:21:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1489,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1487,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1437:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1488,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1473,
                      "src": "1445:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1437:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1490,
                  "nodeType": "ExpressionStatement",
                  "src": "1437:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1492,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1473,
                        "src": "1476:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1491,
                      "name": "OwnerChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1421,
                      "src": "1463:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 1493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1463:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1494,
                  "nodeType": "ExpressionStatement",
                  "src": "1463:22:11"
                }
              ]
            },
            "documentation": null,
            "id": 1496,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1476,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1475,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1285:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1285:13:11"
              }
            ],
            "name": "setOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1473,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1496,
                  "src": "1267:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1472,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1267:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1266:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1477,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1299:0:11"
            },
            "scope": 1596,
            "src": "1249:243:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1507,
              "nodeType": "Block",
              "src": "1556:41:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1503,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "1566:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1504,
                      "name": "newRegistrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1498,
                      "src": "1578:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1566:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1506,
                  "nodeType": "ExpressionStatement",
                  "src": "1566:24:11"
                }
              ]
            },
            "documentation": null,
            "id": 1508,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1501,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1500,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1542:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1542:13:11"
              }
            ],
            "name": "setRegistrar",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1498,
                  "name": "newRegistrar",
                  "nodeType": "VariableDeclaration",
                  "scope": 1508,
                  "src": "1520:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1520:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1519:22:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1502,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1556:0:11"
            },
            "scope": 1596,
            "src": "1498:99:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1540,
              "nodeType": "Block",
              "src": "1684:248:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1519,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1757:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1520,
                      "name": "newValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1510,
                      "src": "1765:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1757:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1523,
                  "nodeType": "IfStatement",
                  "src": "1753:27:11",
                  "trueBody": {
                    "id": 1522,
                    "nodeType": "Throw",
                    "src": "1775:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1526,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1524,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1790:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1525,
                      "name": "newValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1510,
                      "src": "1798:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1790:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1527,
                  "nodeType": "ExpressionStatement",
                  "src": "1790:16:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1537,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "1864:36:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1530,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3471,
                                "src": "1876:4:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1531,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1876:12:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1532,
                              "name": "newValue",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1510,
                              "src": "1891:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1876:23:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1528,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1413,
                            "src": "1865:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 1529,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "send",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1865:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) returns (bool)"
                          }
                        },
                        "id": 1534,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1865:35:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1536,
                      "name": "throwOnFailure",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1512,
                      "src": "1904:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1864:54:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1539,
                  "nodeType": "IfStatement",
                  "src": "1860:65:11",
                  "trueBody": {
                    "id": 1538,
                    "nodeType": "Throw",
                    "src": "1920:5:11"
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1541,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1515,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1514,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1659:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1659:13:11"
              },
              {
                "arguments": null,
                "id": 1517,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1516,
                  "name": "onlyActive",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1443,
                  "src": "1673:10:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1673:10:11"
              }
            ],
            "name": "setBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1510,
                  "name": "newValue",
                  "nodeType": "VariableDeclaration",
                  "scope": 1541,
                  "src": "1623:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1509,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1623:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1512,
                  "name": "throwOnFailure",
                  "nodeType": "VariableDeclaration",
                  "scope": 1541,
                  "src": "1638:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1511,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1638:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1622:36:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1518,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1684:0:11"
            },
            "scope": 1596,
            "src": "1603:329:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1576,
              "nodeType": "Block",
              "src": "2151:152:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1550,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "2161:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 1551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2170:5:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2161:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1553,
                  "nodeType": "ExpressionStatement",
                  "src": "2161:14:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "2189:55:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1562,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1558,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31303030",
                                        "id": 1556,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2203:4:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1000_by_1",
                                          "typeString": "int_const 1000"
                                        },
                                        "value": "1000"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 1557,
                                        "name": "refundRatio",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1543,
                                        "src": "2210:11:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "2203:18:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 1559,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "2202:20:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1560,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3471,
                                    "src": "2225:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$1596",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 1561,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balance",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "2225:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2202:35:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 1563,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2201:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 1564,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2239:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "2201:42:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1554,
                          "name": "burn",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1409,
                          "src": "2191:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 1555,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "send",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2191:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (uint256) returns (bool)"
                        }
                      },
                      "id": 1566,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2191:53:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1569,
                  "nodeType": "IfStatement",
                  "src": "2185:66:11",
                  "trueBody": {
                    "id": 1568,
                    "nodeType": "Throw",
                    "src": "2246:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1570,
                      "name": "DeedClosed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1423,
                      "src": "2261:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2261:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1572,
                  "nodeType": "ExpressionStatement",
                  "src": "2261:12:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1573,
                      "name": "destroyDeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1595,
                      "src": "2283:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2283:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1575,
                  "nodeType": "ExpressionStatement",
                  "src": "2283:13:11"
                }
              ]
            },
            "documentation": "@dev Close a deed and refund a specified fraction of the bid value\n     * @param refundRatio The amount*1/1000 to refund",
            "id": 1577,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1546,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1545,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "2126:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2126:13:11"
              },
              {
                "arguments": null,
                "id": 1548,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1547,
                  "name": "onlyActive",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1443,
                  "src": "2140:10:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2140:10:11"
              }
            ],
            "name": "closeDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1543,
                  "name": "refundRatio",
                  "nodeType": "VariableDeclaration",
                  "scope": 1577,
                  "src": "2108:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1542,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2108:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2107:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2151:0:11"
            },
            "scope": 1596,
            "src": "2089:214:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1594,
              "nodeType": "Block",
              "src": "2422:356:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1580,
                    "name": "active",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1425,
                    "src": "2436:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1582,
                  "nodeType": "IfStatement",
                  "src": "2432:17:11",
                  "trueBody": {
                    "id": 1581,
                    "nodeType": "Throw",
                    "src": "2444:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1585,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3471,
                          "src": "2714:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        },
                        "id": 1586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2714:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1583,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1413,
                        "src": "2703:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "send",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2703:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (uint256) returns (bool)"
                      }
                    },
                    "id": 1587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2703:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1593,
                  "nodeType": "IfStatement",
                  "src": "2699:73:11",
                  "trueBody": {
                    "id": 1592,
                    "nodeType": "Block",
                    "src": "2729:43:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1589,
                              "name": "burn",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1409,
                              "src": "2756:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1588,
                            "name": "selfdestruct",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3430,
                            "src": "2743:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 1590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2743:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1591,
                        "nodeType": "ExpressionStatement",
                        "src": "2743:18:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Close a deed and refund a specified fraction of the bid value",
            "id": 1595,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "destroyDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1578,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2419:2:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1579,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2422:0:11"
            },
            "scope": 1596,
            "src": "2399:379:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3024,
        "src": "618:2162:11"
      },
      {
        "baseContracts": [],
        "contractDependencies": [
          1596
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 3023,
        "linearizedBaseContracts": [
          3023
        ],
        "name": "Registrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1598,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2923:22:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_AbstractENS_$3407",
              "typeString": "contract AbstractENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 1597,
              "name": "AbstractENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3407,
              "src": "2923:11:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                "typeString": "contract AbstractENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1600,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2951:23:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1599,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "2951:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1604,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2981:35:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
              "typeString": "mapping(bytes32 => struct Registrar.entry)"
            },
            "typeName": {
              "id": 1603,
              "keyType": {
                "id": 1601,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "2990:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "2981:26:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                "typeString": "mapping(bytes32 => struct Registrar.entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1602,
                "name": "entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1690,
                "src": "3001:5:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                  "typeString": "struct Registrar.entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1610,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3022:63:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 1609,
              "keyType": {
                "id": 1605,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3031:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3022:45:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 1608,
                "keyType": {
                  "id": 1606,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3050:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "3042:24:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 1607,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1596,
                  "src": "3061:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "Registrar.Mode",
            "id": 1617,
            "members": [
              {
                "id": 1611,
                "name": "Open",
                "nodeType": "EnumValue",
                "src": "3108:4:11"
              },
              {
                "id": 1612,
                "name": "Auction",
                "nodeType": "EnumValue",
                "src": "3114:7:11"
              },
              {
                "id": 1613,
                "name": "Owned",
                "nodeType": "EnumValue",
                "src": "3123:5:11"
              },
              {
                "id": 1614,
                "name": "Forbidden",
                "nodeType": "EnumValue",
                "src": "3130:9:11"
              },
              {
                "id": 1615,
                "name": "Reveal",
                "nodeType": "EnumValue",
                "src": "3141:6:11"
              },
              {
                "id": 1616,
                "name": "NotYetAvailable",
                "nodeType": "EnumValue",
                "src": "3149:15:11"
              }
            ],
            "name": "Mode",
            "nodeType": "EnumDefinition",
            "src": "3096:70:11"
          },
          {
            "constant": true,
            "id": 1620,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3172:43:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1618,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3172:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 1619,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3209:6:11",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1623,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3221:39:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1621,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3221:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 1622,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3252:8:11",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1626,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3266:45:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1624,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3266:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 1625,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3304:7:11",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1629,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3318:35:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1627,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "3318:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 1628,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3343:10:11",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1631,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3359:27:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1630,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "3359:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1637,
            "name": "AuctionStarted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1633,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1637,
                  "src": "3414:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1632,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3414:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1635,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1637,
                  "src": "3436:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1634,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3436:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3413:45:11"
            },
            "src": "3393:66:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1645,
            "name": "NewBid",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1639,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3477:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1638,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3477:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1641,
                  "indexed": true,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3499:22:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1640,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3499:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1643,
                  "indexed": false,
                  "name": "deposit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3523:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1642,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3523:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3476:60:11"
            },
            "src": "3464:73:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1655,
            "name": "BidRevealed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1647,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3560:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1646,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3560:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1649,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3582:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1648,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3582:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1651,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3605:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1650,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3605:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1653,
                  "indexed": false,
                  "name": "status",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3617:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1652,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3617:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3559:71:11"
            },
            "src": "3542:89:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1665,
            "name": "HashRegistered",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1657,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3657:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1656,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3657:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1659,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3679:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1658,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3679:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1661,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3702:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1660,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3702:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1663,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3714:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1662,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3714:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3656:80:11"
            },
            "src": "3636:101:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1671,
            "name": "HashReleased",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1667,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1671,
                  "src": "3761:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1666,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3761:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1669,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1671,
                  "src": "3783:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1668,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3783:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3760:34:11"
            },
            "src": "3742:53:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1681,
            "name": "HashInvalidated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1673,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3822:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1672,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3822:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1675,
                  "indexed": true,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3844:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1674,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3844:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1677,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3865:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1676,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3865:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1679,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3877:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1678,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3877:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3821:78:11"
            },
            "src": "3800:100:11"
          },
          {
            "canonicalName": "Registrar.entry",
            "id": 1690,
            "members": [
              {
                "constant": false,
                "id": 1683,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3929:9:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$1596",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1682,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1596,
                  "src": "3929:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1685,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3948:21:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1684,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3948:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1687,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3979:10:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1686,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3979:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1689,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3999:15:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1688,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3999:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "entry",
            "nodeType": "StructDefinition",
            "scope": 3023,
            "src": "3906:115:11",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1747,
              "nodeType": "Block",
              "src": "4304:526:11",
              "statements": [
                {
                  "assignments": [
                    1697
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1697,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 1748,
                      "src": "4314:9:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1701,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1698,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "4326:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 1700,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1699,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1692,
                      "src": "4335:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4326:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4314:27:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "4364:22:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1703,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1692,
                          "src": "4375:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1704,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "4382:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1702,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2010,
                        "src": "4365:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 1705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4365:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1711,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "4450:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1712,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1697,
                          "src": "4456:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1713,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "4456:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4450:28:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 1744,
                      "nodeType": "Block",
                      "src": "4668:156:11",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1734,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1731,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1697,
                                "src": "4686:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 1732,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1689,
                              "src": "4686:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1733,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4706:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "4686:21:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1742,
                            "nodeType": "Block",
                            "src": "4764:50:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1739,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4789:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1740,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4789:10:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1741,
                                "nodeType": "Return",
                                "src": "4782:17:11"
                              }
                            ]
                          },
                          "id": 1743,
                          "nodeType": "IfStatement",
                          "src": "4682:132:11",
                          "trueBody": {
                            "id": 1738,
                            "nodeType": "Block",
                            "src": "4709:49:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1735,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4734:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1736,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4734:9:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1737,
                                "nodeType": "Return",
                                "src": "4727:16:11"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 1745,
                    "nodeType": "IfStatement",
                    "src": "4446:378:11",
                    "trueBody": {
                      "id": 1730,
                      "nodeType": "Block",
                      "src": "4480:182:11",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1720,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1715,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3424,
                              "src": "4498:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1719,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1716,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1697,
                                  "src": "4504:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 1717,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1685,
                                "src": "4504:22:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1718,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1623,
                                "src": "4529:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "4504:37:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4498:43:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1728,
                            "nodeType": "Block",
                            "src": "4601:51:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1725,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4626:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1726,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4626:11:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1727,
                                "nodeType": "Return",
                                "src": "4619:18:11"
                              }
                            ]
                          },
                          "id": 1729,
                          "nodeType": "IfStatement",
                          "src": "4494:158:11",
                          "trueBody": {
                            "id": 1724,
                            "nodeType": "Block",
                            "src": "4543:52:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1721,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4568:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1722,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4568:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1723,
                                "nodeType": "Return",
                                "src": "4561:19:11"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 1746,
                  "nodeType": "IfStatement",
                  "src": "4360:464:11",
                  "trueBody": {
                    "id": 1710,
                    "nodeType": "Block",
                    "src": "4388:52:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1707,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1617,
                            "src": "4409:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 1708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4409:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$1617",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "functionReturnParameters": 1696,
                        "id": 1709,
                        "nodeType": "Return",
                        "src": "4402:27:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1748,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1692,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1748,
                  "src": "4265:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4265:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4264:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1695,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1748,
                  "src": "4298:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1694,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "4298:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4297:6:11"
            },
            "scope": 3023,
            "src": "4250:580:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1762,
              "nodeType": "Block",
              "src": "4881:61:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 1758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1755,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1750,
                          "src": "4901:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 1754,
                        "name": "state",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1748,
                        "src": "4895:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                          "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                        }
                      },
                      "id": 1756,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4895:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1757,
                      "name": "_state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1752,
                      "src": "4911:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "4895:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1760,
                  "nodeType": "IfStatement",
                  "src": "4891:33:11",
                  "trueBody": {
                    "id": 1759,
                    "nodeType": "Throw",
                    "src": "4919:5:11"
                  }
                },
                {
                  "id": 1761,
                  "nodeType": "PlaceholderStatement",
                  "src": "4934:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1763,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1753,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1750,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1763,
                  "src": "4853:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1749,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4853:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1752,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 1763,
                  "src": "4868:11:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1751,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "4868:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4852:28:11"
            },
            "src": "4836:106:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1786,
              "nodeType": "Block",
              "src": "4982:111:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 1772,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1768,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1765,
                            "src": "5002:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1767,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1748,
                          "src": "4996:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1769,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4996:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1770,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1617,
                          "src": "5012:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 1771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Owned",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5012:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "4996:26:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 1781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1773,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "5026:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5026:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1775,
                                "name": "_entries",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1604,
                                "src": "5040:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                                  "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                                }
                              },
                              "id": 1777,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1776,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1765,
                                "src": "5049:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5040:15:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage",
                                "typeString": "struct Registrar.entry storage ref"
                              }
                            },
                            "id": 1778,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "5040:20:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1779,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "5040:26:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1780,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5040:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "5026:42:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4996:72:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1784,
                  "nodeType": "IfStatement",
                  "src": "4992:83:11",
                  "trueBody": {
                    "id": 1783,
                    "nodeType": "Throw",
                    "src": "5070:5:11"
                  }
                },
                {
                  "id": 1785,
                  "nodeType": "PlaceholderStatement",
                  "src": "5085:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1787,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1766,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1765,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1787,
                  "src": "4967:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1764,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4967:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4966:15:11"
            },
            "src": "4948:145:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1810,
              "nodeType": "Block",
              "src": "5123:136:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 1797,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1789,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "5137:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1790,
                          "name": "registryStarted",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1631,
                          "src": "5143:15:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5137:21:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1792,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "5163:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1795,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1793,
                            "name": "registryStarted",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1631,
                            "src": "5169:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "34",
                            "id": 1794,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5187:7:11",
                            "subdenomination": "years",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_126144000_by_1",
                              "typeString": "int_const 126144000"
                            },
                            "value": "4"
                          },
                          "src": "5169:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5163:31:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "5137:57:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 1805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1800,
                            "name": "rootNode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1600,
                            "src": "5208:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1798,
                            "name": "ens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1598,
                            "src": "5198:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_AbstractENS_$3407",
                              "typeString": "contract AbstractENS"
                            }
                          },
                          "id": 1799,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3336,
                          "src": "5198:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 1801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5198:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1803,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "5229:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 1802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5221:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1804,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5221:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "5198:36:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5137:97:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1808,
                  "nodeType": "IfStatement",
                  "src": "5133:108:11",
                  "trueBody": {
                    "id": 1807,
                    "nodeType": "Throw",
                    "src": "5236:5:11"
                  }
                },
                {
                  "id": 1809,
                  "nodeType": "PlaceholderStatement",
                  "src": "5251:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1811,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1788,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5120:2:11"
            },
            "src": "5099:160:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1845,
              "nodeType": "Block",
              "src": "5348:124:11",
              "statements": [
                {
                  "assignments": [
                    1827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1827,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1846,
                      "src": "5358:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1826,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "5358:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1831,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1828,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "5368:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 1830,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1829,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1813,
                      "src": "5377:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5368:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5358:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1833,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1813,
                            "src": "5407:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1832,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1748,
                          "src": "5401:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5401:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1835,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5415:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1836,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "5415:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1837,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5423:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1838,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "5423:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1839,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5443:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1840,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "5443:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1841,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5452:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1842,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1689,
                        "src": "5452:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 1843,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5400:65:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$1617_$_t_contract$_Deed_$1596_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum Registrar.Mode,contract Deed,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 1825,
                  "id": 1844,
                  "nodeType": "Return",
                  "src": "5393:72:11"
                }
              ]
            },
            "documentation": null,
            "id": 1846,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1813,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5282:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1812,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5282:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5281:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1825,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1816,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5315:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1815,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "5315:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1818,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5321:7:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1817,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5321:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1820,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5330:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1819,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5330:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1822,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5336:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1821,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5336:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1824,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5342:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1823,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5342:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5314:33:11"
            },
            "scope": 3023,
            "src": "5265:207:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1872,
              "nodeType": "Block",
              "src": "5763:118:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1855,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1598,
                      "src": "5773:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_AbstractENS_$3407",
                        "typeString": "contract AbstractENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1856,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1848,
                      "src": "5779:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_AbstractENS_$3407",
                        "typeString": "contract AbstractENS"
                      }
                    },
                    "src": "5773:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AbstractENS_$3407",
                      "typeString": "contract AbstractENS"
                    }
                  },
                  "id": 1858,
                  "nodeType": "ExpressionStatement",
                  "src": "5773:10:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1859,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1600,
                      "src": "5793:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1860,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1850,
                      "src": "5804:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "5793:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1862,
                  "nodeType": "ExpressionStatement",
                  "src": "5793:20:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1863,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1631,
                      "src": "5823:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1864,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1852,
                          "src": "5841:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5854:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5841:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 1868,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "5871:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 1869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "5841:33:11",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 1867,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1852,
                        "src": "5858:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5823:51:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1871,
                  "nodeType": "ExpressionStatement",
                  "src": "5823:51:11"
                }
              ]
            },
            "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": 1873,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "Registrar",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1853,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1848,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5709:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_AbstractENS_$3407",
                    "typeString": "contract AbstractENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1847,
                    "name": "AbstractENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3407,
                    "src": "5709:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AbstractENS_$3407",
                      "typeString": "contract AbstractENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1850,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5727:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1849,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5727:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1852,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5746:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1851,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5746:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5708:54:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1854,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5763:0:11"
            },
            "scope": 3023,
            "src": "5690:191:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1890,
              "nodeType": "Block",
              "src": "6157:83:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1882,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1875,
                      "src": "6171:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1883,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1877,
                      "src": "6175:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6171:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1887,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1877,
                      "src": "6232:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1881,
                    "id": 1888,
                    "nodeType": "Return",
                    "src": "6225:8:11"
                  },
                  "id": 1889,
                  "nodeType": "IfStatement",
                  "src": "6167:66:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1885,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1875,
                      "src": "6197:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1881,
                    "id": 1886,
                    "nodeType": "Return",
                    "src": "6190:8:11"
                  }
                }
              ]
            },
            "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": 1891,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1875,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6104:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1874,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6104:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1877,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6112:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1876,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6112:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6103:16:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1880,
                  "name": "max",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6147:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1879,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6147:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6146:10:11"
            },
            "scope": 3023,
            "src": "6091:149:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1908,
              "nodeType": "Block",
              "src": "6516:83:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1900,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "6530:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1901,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1895,
                      "src": "6534:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6530:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1905,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1895,
                      "src": "6591:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1899,
                    "id": 1906,
                    "nodeType": "Return",
                    "src": "6584:8:11"
                  },
                  "id": 1907,
                  "nodeType": "IfStatement",
                  "src": "6526:66:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1903,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "6556:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1899,
                    "id": 1904,
                    "nodeType": "Return",
                    "src": "6549:8:11"
                  }
                }
              ]
            },
            "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": 1909,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1896,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1893,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6463:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1892,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6463:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1895,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6471:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1894,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6471:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6462:16:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1899,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1898,
                  "name": "min",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6506:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1897,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6506:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6505:10:11"
            },
            "scope": 3023,
            "src": "6450:149:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1993,
              "nodeType": "Block",
              "src": "6834:766:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1916,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1911,
                    "src": "6844:1:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 1917,
                  "nodeType": "ExpressionStatement",
                  "src": "6844:1:11"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1919,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 1994,
                      "src": "6962:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1918,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6962:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1920,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6962:8:11"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1922,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 1994,
                      "src": "6980:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1921,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6980:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1923,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6980:8:11"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 1919,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7021:3:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 1911,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7032:1:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 1911,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7067:1:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 1922,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7050:3:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 1919,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7071:3:11",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 1924,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "6998:99:11"
                },
                {
                  "body": {
                    "id": 1989,
                    "nodeType": "Block",
                    "src": "7131:443:11",
                    "statements": [
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1936,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 1994,
                            "src": "7145:7:11",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 1935,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "7145:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1937,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "7145:7:11"
                      },
                      {
                        "externalReferences": [
                          {
                            "ptr": {
                              "declaration": 1919,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "7192:3:11",
                              "valueSize": 1
                            }
                          },
                          {
                            "b": {
                              "declaration": 1936,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "7177:1:11",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 1938,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    b := and(mload(ptr), 0xFF)\n}",
                        "src": "7166:54:11"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 1941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1939,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1936,
                            "src": "7222:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 1940,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7226:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "7222:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 1949,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1947,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1936,
                              "src": "7283:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 1948,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7287:4:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "7283:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 1957,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1955,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1936,
                                "src": "7344:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 1956,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7348:4:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "7344:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 1965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1963,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1936,
                                  "src": "7405:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 1964,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7409:4:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "7405:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 1973,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 1971,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1936,
                                    "src": "7466:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 1972,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7470:4:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "7466:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 1983,
                                  "nodeType": "Block",
                                  "src": "7523:41:11",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1981,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 1979,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1919,
                                          "src": "7541:3:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 1980,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "7548:1:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "7541:8:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 1982,
                                      "nodeType": "ExpressionStatement",
                                      "src": "7541:8:11"
                                    }
                                  ]
                                },
                                "id": 1984,
                                "nodeType": "IfStatement",
                                "src": "7462:102:11",
                                "trueBody": {
                                  "id": 1978,
                                  "nodeType": "Block",
                                  "src": "7476:41:11",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1976,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 1974,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1919,
                                          "src": "7494:3:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 1975,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "7501:1:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "7494:8:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 1977,
                                      "nodeType": "ExpressionStatement",
                                      "src": "7494:8:11"
                                    }
                                  ]
                                }
                              },
                              "id": 1985,
                              "nodeType": "IfStatement",
                              "src": "7401:163:11",
                              "trueBody": {
                                "id": 1970,
                                "nodeType": "Block",
                                "src": "7415:41:11",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1968,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 1966,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1919,
                                        "src": "7433:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 1967,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7440:1:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "7433:8:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 1969,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7433:8:11"
                                  }
                                ]
                              }
                            },
                            "id": 1986,
                            "nodeType": "IfStatement",
                            "src": "7340:224:11",
                            "trueBody": {
                              "id": 1962,
                              "nodeType": "Block",
                              "src": "7354:41:11",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1960,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1958,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1919,
                                      "src": "7372:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 1959,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "7379:1:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "7372:8:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 1961,
                                  "nodeType": "ExpressionStatement",
                                  "src": "7372:8:11"
                                }
                              ]
                            }
                          },
                          "id": 1987,
                          "nodeType": "IfStatement",
                          "src": "7279:285:11",
                          "trueBody": {
                            "id": 1954,
                            "nodeType": "Block",
                            "src": "7293:41:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1952,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 1950,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1919,
                                    "src": "7311:3:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 1951,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7318:1:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "7311:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1953,
                                "nodeType": "ExpressionStatement",
                                "src": "7311:8:11"
                              }
                            ]
                          }
                        },
                        "id": 1988,
                        "nodeType": "IfStatement",
                        "src": "7218:346:11",
                        "trueBody": {
                          "id": 1946,
                          "nodeType": "Block",
                          "src": "7232:41:11",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1944,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 1942,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1919,
                                  "src": "7250:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1943,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7257:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "7250:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1945,
                              "nodeType": "ExpressionStatement",
                              "src": "7250:8:11"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1929,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1919,
                      "src": "7113:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1930,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1922,
                      "src": "7119:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7113:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1990,
                  "initializationExpression": {
                    "assignments": [
                      1926
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1926,
                        "name": "len",
                        "nodeType": "VariableDeclaration",
                        "scope": 1994,
                        "src": "7099:8:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1925,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7099:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1928,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1927,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7110:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7099:12:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7124:5:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1932,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1926,
                        "src": "7124:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1934,
                    "nodeType": "ExpressionStatement",
                    "src": "7124:5:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "7094:480:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1991,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1926,
                    "src": "7590:3:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1915,
                  "id": 1992,
                  "nodeType": "Return",
                  "src": "7583:10:11"
                }
              ]
            },
            "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": 1994,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1912,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1911,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 1994,
                  "src": "6791:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1910,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6791:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6790:10:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1914,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1994,
                  "src": "6828:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1913,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6828:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6827:6:11"
            },
            "scope": 3023,
            "src": "6775:825:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2009,
              "nodeType": "Block",
              "src": "8009:58:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2007,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2003,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1998,
                      "src": "8026:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2005,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1996,
                          "src": "8054:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2004,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2033,
                        "src": "8039:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 2006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8039:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8026:34:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2002,
                  "id": 2008,
                  "nodeType": "Return",
                  "src": "8019:41:11"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n\n     * Each name will be assigned a random date in which its auction \ncan 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",
            "id": 2010,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1996,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7946:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1995,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7946:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1998,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7961:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1997,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7961:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7945:32:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2001,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7996:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2000,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7996:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7995:14:11"
            },
            "scope": 3023,
            "src": "7927:140:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2032,
              "nodeType": "Block",
              "src": "8384:140:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2030,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2017,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1631,
                      "src": "8401:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2028,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2025,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2018,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1626,
                                  "src": "8421:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 2023,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 2020,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2012,
                                            "src": "8442:5:11",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 2019,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8437:4:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 2021,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8437:11:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 2022,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8452:3:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "8437:18:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 2024,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "8436:20:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8421:35:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2026,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "8420:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 2027,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8461:3:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "8420:44:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 2029,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "8419:46:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8401:64:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2016,
                  "id": 2031,
                  "nodeType": "Return",
                  "src": "8394:71:11"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n\n     * @param _hash The hash to start an auction on",
            "id": 2033,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2012,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2033,
                  "src": "8335:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2011,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8335:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8334:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2016,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2015,
                  "name": "timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2033,
                  "src": "8368:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2014,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8368:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8367:16:11"
            },
            "scope": 3023,
            "src": "8311:213:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2057,
              "nodeType": "Block",
              "src": "8780:126:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2042,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "8804:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2040,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "8794:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3336,
                        "src": "8794:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8794:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2045,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "8825:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8817:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2046,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8817:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "8794:36:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2056,
                  "nodeType": "IfStatement",
                  "src": "8790:101:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2051,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "8864:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2052,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2035,
                          "src": "8874:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2053,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2037,
                          "src": "8881:9:11",
                          "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": 2048,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "8844:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3366,
                        "src": "8844:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                          "typeString": "function (bytes32,bytes32,address) external"
                        }
                      },
                      "id": 2054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8844:47:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2055,
                    "nodeType": "ExpressionStatement",
                    "src": "8844:47:11"
                  }
                }
              ]
            },
            "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": 2058,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2035,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2058,
                  "src": "8737:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2034,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8737:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2037,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2058,
                  "src": "8752:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2036,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8752:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8736:34:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2039,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8780:0:11"
            },
            "scope": 3023,
            "src": "8709:197:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2114,
              "nodeType": "Block",
              "src": "9090:354:11",
              "statements": [
                {
                  "assignments": [
                    2065
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2065,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 2115,
                      "src": "9100:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2069,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2067,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "9117:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2066,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1748,
                      "src": "9111:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9111:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9100:23:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2070,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "9137:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2071,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "9145:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2072,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9145:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "9137:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2075,
                  "nodeType": "IfStatement",
                  "src": "9133:33:11",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 2064,
                    "id": 2074,
                    "nodeType": "Return",
                    "src": "9159:7:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2076,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "9179:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2077,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "9187:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Open",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9187:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "9179:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2081,
                  "nodeType": "IfStatement",
                  "src": "9175:28:11",
                  "trueBody": {
                    "id": 2080,
                    "nodeType": "Throw",
                    "src": "9198:5:11"
                  }
                },
                {
                  "assignments": [
                    2083
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2083,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 2115,
                      "src": "9214:16:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2082,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "9214:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2087,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2084,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "9233:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2086,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2085,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2060,
                      "src": "9242:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9233:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9214:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2088,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9258:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2090,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1685,
                      "src": "9258:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2091,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "9288:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2092,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "9294:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "9288:24:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9258:54:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2095,
                  "nodeType": "ExpressionStatement",
                  "src": "9258:54:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2096,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9322:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2098,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "9322:16:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2099,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9341:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9322:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2101,
                  "nodeType": "ExpressionStatement",
                  "src": "9322:20:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2102,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9352:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2104,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "9352:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2105,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9376:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9352:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2107,
                  "nodeType": "ExpressionStatement",
                  "src": "9352:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2109,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "9402:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2110,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2083,
                          "src": "9409:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2111,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "9409:27:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2108,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1637,
                      "src": "9387:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9387:50:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2113,
                  "nodeType": "ExpressionStatement",
                  "src": "9387:50:11"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 2115,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 2063,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2062,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1811,
                  "src": "9075:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9075:14:11"
              }
            ],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2060,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2115,
                  "src": "9060:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2059,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9060:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9059:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2064,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9090:0:11"
            },
            "scope": 3023,
            "src": "9038:406:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2140,
              "nodeType": "Block",
              "src": "10081:108:11",
              "statements": [
                {
                  "body": {
                    "id": 2138,
                    "nodeType": "Block",
                    "src": "10134:49:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2133,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2118,
                                "src": "10161:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2135,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2134,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2122,
                                "src": "10169:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10161:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2132,
                            "name": "startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2115,
                            "src": "10148:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 2136,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10148:24:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2137,
                        "nodeType": "ExpressionStatement",
                        "src": "10148:24:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2125,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2122,
                      "src": "10108:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2126,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2118,
                        "src": "10112:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2127,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10112:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10108:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2139,
                  "initializationExpression": {
                    "assignments": [
                      2122
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2122,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2141,
                        "src": "10096:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 2121,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10096:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2124,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10105:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10096:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2130,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "10128:4:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2129,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2122,
                        "src": "10128:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2131,
                    "nodeType": "ExpressionStatement",
                    "src": "10128:4:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "10091:92:11"
                }
              ]
            },
            "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": 2141,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2118,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "10061:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2116,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10061:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2117,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10061:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10060:19:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10081:0:11"
            },
            "scope": 3023,
            "src": "10038:151:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2161,
              "nodeType": "Block",
              "src": "10586:54:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2155,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2143,
                        "src": "10608:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2156,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2145,
                        "src": "10614:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2157,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2147,
                        "src": "10621:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2158,
                        "name": "salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "10628:4:11",
                        "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"
                        }
                      ],
                      "id": 2154,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "10603:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10603:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2153,
                  "id": 2160,
                  "nodeType": "Return",
                  "src": "10596:37:11"
                }
              ]
            },
            "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": 2162,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2143,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10494:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2142,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10494:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2145,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10508:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10508:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2147,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10523:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10523:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10535:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10535:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10493:55:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2152,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10567:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10567:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10566:19:11"
            },
            "scope": 3023,
            "src": "10478:162:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2215,
              "nodeType": "Block",
              "src": "11539:335:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2168,
                              "name": "sealedBids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1610,
                              "src": "11561:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                              }
                            },
                            "id": 2171,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2169,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "11572:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2170,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11572:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11561:22:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                              "typeString": "mapping(bytes32 => contract Deed)"
                            }
                          },
                          "id": 2173,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2172,
                            "name": "sealedBid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2164,
                            "src": "11584:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11561:33:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11553:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2174,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11553:42:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2175,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11598:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11553:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2178,
                  "nodeType": "IfStatement",
                  "src": "11549:57:11",
                  "trueBody": {
                    "id": 2177,
                    "nodeType": "Throw",
                    "src": "11601:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2179,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "11620:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2180,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11620:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2181,
                      "name": "minPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1629,
                      "src": "11632:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11620:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2184,
                  "nodeType": "IfStatement",
                  "src": "11616:31:11",
                  "trueBody": {
                    "id": 2183,
                    "nodeType": "Throw",
                    "src": "11642:5:11"
                  }
                },
                {
                  "assignments": [
                    2186
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2186,
                      "name": "newBid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2216,
                      "src": "11712:11:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2185,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "11712:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2197,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2194,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11754:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11754:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2191,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "11743:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2192,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11743:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 2188,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "11727:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$",
                                "typeString": "function (address) payable returns (contract Deed)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 2187,
                                "name": "Deed",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 1596,
                                "src": "11731:4:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              }
                            }
                          ],
                          "id": 2189,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11726:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$",
                            "typeString": "function (address) payable returns (contract Deed)"
                          }
                        },
                        "id": 2190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11726:16:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$value_$",
                          "typeString": "function (uint256) returns (function (address) payable returns (contract Deed))"
                        }
                      },
                      "id": 2193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11726:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$value",
                        "typeString": "function (address) payable returns (contract Deed)"
                      }
                    },
                    "id": 2196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11726:39:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11712:53:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2198,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "11775:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2202,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2199,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "11786:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2200,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11786:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11775:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2203,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2201,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2164,
                        "src": "11798:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11775:33:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2204,
                      "name": "newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2186,
                      "src": "11811:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "11775:42:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2206,
                  "nodeType": "ExpressionStatement",
                  "src": "11775:42:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2208,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2164,
                        "src": "11834:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2209,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11845:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11845:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2211,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11857:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11857:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2207,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1645,
                      "src": "11827:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 2213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11827:40:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2214,
                  "nodeType": "ExpressionStatement",
                  "src": "11827:40:11"
                }
              ]
            },
            "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": 2216,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2164,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2216,
                  "src": "11512:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2163,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11512:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11511:19:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 2166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11539:0:11"
            },
            "scope": 3023,
            "src": "11496:378:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2232,
              "nodeType": "Block",
              "src": "12290:65:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2225,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2219,
                        "src": "12314:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      ],
                      "id": 2224,
                      "name": "startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2141,
                      "src": "12300:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 2226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12300:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2227,
                  "nodeType": "ExpressionStatement",
                  "src": "12300:21:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2229,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2221,
                        "src": "12338:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2228,
                      "name": "newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2216,
                      "src": "12331:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12331:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2231,
                  "nodeType": "ExpressionStatement",
                  "src": "12331:17:11"
                }
              ]
            },
            "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": 2233,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2219,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2233,
                  "src": "12245:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2217,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "12245:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2218,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "12245:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2221,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2233,
                  "src": "12263:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2220,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12263:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12244:37:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 2223,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12290:0:11"
            },
            "scope": 3023,
            "src": "12216:139:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2454,
              "nodeType": "Block",
              "src": "12649:1836:11",
              "statements": [
                {
                  "assignments": [
                    2243
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2243,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12659:12:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2242,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12659:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2251,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2245,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2235,
                        "src": "12681:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2246,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "12688:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12688:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2248,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2237,
                        "src": "12700:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2249,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2239,
                        "src": "12708:5:11",
                        "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"
                        }
                      ],
                      "id": 2244,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2162,
                      "src": "12674:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) view returns (bytes32)"
                      }
                    },
                    "id": 2250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12674:40:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12659:55:11"
                },
                {
                  "assignments": [
                    2253
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2253,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12724:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2252,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "12724:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2260,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2254,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "12735:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 2257,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2255,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "12746:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12746:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "12735:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 2259,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2258,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2243,
                      "src": "12758:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12735:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12724:39:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2262,
                          "name": "bid",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2253,
                          "src": "12785:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12777:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12777:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2264,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12793:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12777:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2267,
                  "nodeType": "IfStatement",
                  "src": "12773:28:11",
                  "trueBody": {
                    "id": 2266,
                    "nodeType": "Throw",
                    "src": "12796:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2277,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2268,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "12812:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2272,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2269,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "12823:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2270,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12823:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12812:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2273,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2271,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2243,
                        "src": "12835:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12812:28:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2275,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12848:1:11",
                          "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": 2274,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "12843:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12843:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "12812:38:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2278,
                  "nodeType": "ExpressionStatement",
                  "src": "12812:38:11"
                },
                {
                  "assignments": [
                    2280
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2280,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12860:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2279,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "12860:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2284,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2281,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "12870:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2283,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2282,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2235,
                      "src": "12879:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12870:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12860:25:11"
                },
                {
                  "assignments": [
                    2286
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2286,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12895:10:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2285,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12895:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2293,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2288,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2237,
                        "src": "12912:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2289,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2253,
                            "src": "12920:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1417,
                          "src": "12920:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 2291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12920:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2287,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1909,
                      "src": "12908:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (uint256)"
                      }
                    },
                    "id": 2292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12908:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12895:37:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2297,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2286,
                        "src": "12957:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 2298,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12964:4:11",
                        "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": 2294,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2253,
                        "src": "12942:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2296,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1541,
                      "src": "12942:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 2299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12942:27:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2300,
                  "nodeType": "ExpressionStatement",
                  "src": "12942:27:11"
                },
                {
                  "assignments": [
                    2301
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2301,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12980:16:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2305,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2303,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2235,
                        "src": "13005:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2302,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1748,
                      "src": "12999:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2304,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12999:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12980:31:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2306,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2301,
                      "src": "13025:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2307,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "13041:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2308,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13041:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "13025:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 2328,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2325,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2301,
                        "src": "13223:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2326,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1617,
                          "src": "13239:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 2327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "13239:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "13223:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2331,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2286,
                            "src": "13321:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2332,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1629,
                            "src": "13329:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13321:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2334,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2253,
                                "src": "13341:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2335,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1411,
                              "src": "13341:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2336,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13341:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2340,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2337,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2280,
                                "src": "13362:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2338,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1685,
                              "src": "13362:18:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 2339,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1623,
                              "src": "13383:12:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "13362:33:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13341:54:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "13321:74:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2361,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2358,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2286,
                            "src": "13557:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2359,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2280,
                              "src": "13565:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2360,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1689,
                            "src": "13565:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13557:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2409,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2286,
                              "src": "14139:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2410,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2280,
                                "src": "14147:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2411,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1687,
                              "src": "14147:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "14139:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 2448,
                            "nodeType": "Block",
                            "src": "14340:139:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 2437,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14410:3:11",
                                      "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": 2434,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2253,
                                      "src": "14396:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 2436,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1577,
                                    "src": "14396:13:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 2438,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14396:18:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2439,
                                "nodeType": "ExpressionStatement",
                                "src": "14396:18:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 2441,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2235,
                                      "src": "14440:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2442,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3422,
                                        "src": "14447:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 2443,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "14447:10:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 2444,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2286,
                                      "src": "14459:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 2445,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14466:1:11",
                                      "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",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 2440,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1655,
                                    "src": "14428:11:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 2446,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14428:40:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2447,
                                "nodeType": "ExpressionStatement",
                                "src": "14428:40:11"
                              }
                            ]
                          },
                          "id": 2449,
                          "nodeType": "IfStatement",
                          "src": "14135:344:11",
                          "trueBody": {
                            "id": 2433,
                            "nodeType": "Block",
                            "src": "14156:178:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2417,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2413,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2280,
                                      "src": "14222:1:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                        "typeString": "struct Registrar.entry storage pointer"
                                      }
                                    },
                                    "id": 2415,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1687,
                                    "src": "14222:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 2416,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2286,
                                    "src": "14232:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "14222:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 2418,
                                "nodeType": "ExpressionStatement",
                                "src": "14222:15:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 2422,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14265:3:11",
                                      "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": 2419,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2253,
                                      "src": "14251:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 2421,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1577,
                                    "src": "14251:13:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 2423,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14251:18:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2424,
                                "nodeType": "ExpressionStatement",
                                "src": "14251:18:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 2426,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2235,
                                      "src": "14295:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2427,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3422,
                                        "src": "14302:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 2428,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "14302:10:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 2429,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2286,
                                      "src": "14314:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 2430,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14321:1:11",
                                      "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",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 2425,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1655,
                                    "src": "14283:11:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 2431,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14283:40:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2432,
                                "nodeType": "ExpressionStatement",
                                "src": "14283:40:11"
                              }
                            ]
                          }
                        },
                        "id": 2450,
                        "nodeType": "IfStatement",
                        "src": "13553:926:11",
                        "trueBody": {
                          "id": 2408,
                          "nodeType": "Block",
                          "src": "13579:550:11",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 2367,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2363,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2280,
                                        "src": "13681:1:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                          "typeString": "struct Registrar.entry storage pointer"
                                        }
                                      },
                                      "id": 2364,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1683,
                                      "src": "13681:6:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 2362,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "13673:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 2365,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13673:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2366,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13692:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13673:20:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 2380,
                              "nodeType": "IfStatement",
                              "src": "13669:134:11",
                              "trueBody": {
                                "id": 2379,
                                "nodeType": "Block",
                                "src": "13695:108:11",
                                "statements": [
                                  {
                                    "assignments": [
                                      2369
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 2369,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 2455,
                                        "src": "13713:19:11",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$1596",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 2368,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 1596,
                                          "src": "13713:4:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$1596",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 2372,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2370,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2280,
                                        "src": "13735:1:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                          "typeString": "struct Registrar.entry storage pointer"
                                        }
                                      },
                                      "id": 2371,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1683,
                                      "src": "13735:6:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13713:28:11"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 2376,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "13784:3:11",
                                          "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": 2373,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2369,
                                          "src": "13759:14:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$1596",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 2375,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 1577,
                                        "src": "13759:24:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 2377,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "13759:29:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 2378,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13759:29:11"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2386,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2381,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "13940:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2383,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1687,
                                  "src": "13940:7:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2384,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "13950:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2385,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1689,
                                  "src": "13950:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13940:22:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2387,
                              "nodeType": "ExpressionStatement",
                              "src": "13940:22:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2388,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "14018:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2390,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1689,
                                  "src": "14018:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 2391,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2286,
                                  "src": "14033:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14018:20:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2393,
                              "nodeType": "ExpressionStatement",
                              "src": "14018:20:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2394,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "14052:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2396,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1683,
                                  "src": "14052:6:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 2397,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2253,
                                  "src": "14061:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "14052:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2399,
                              "nodeType": "ExpressionStatement",
                              "src": "14052:12:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2401,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2235,
                                    "src": "14090:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2402,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3422,
                                      "src": "14097:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 2403,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "14097:10:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 2404,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2286,
                                    "src": "14109:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 2405,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14116:1:11",
                                    "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",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 2400,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1655,
                                  "src": "14078:11:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 2406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14078:40:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 2407,
                              "nodeType": "ExpressionStatement",
                              "src": "14078:40:11"
                            }
                          ]
                        }
                      },
                      "id": 2451,
                      "nodeType": "IfStatement",
                      "src": "13317:1162:11",
                      "trueBody": {
                        "id": 2357,
                        "nodeType": "Block",
                        "src": "13397:150:11",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 2346,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13478:3:11",
                                  "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": 2343,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2253,
                                  "src": "13464:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 2345,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1577,
                                "src": "13464:13:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 2347,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13464:18:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2348,
                            "nodeType": "ExpressionStatement",
                            "src": "13464:18:11"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2350,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2235,
                                  "src": "13508:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2351,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3422,
                                    "src": "13515:3:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2352,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13515:10:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 2353,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2286,
                                  "src": "13527:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2354,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13534:1:11",
                                  "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",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2349,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1655,
                                "src": "13496:11:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 2355,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13496:40:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2356,
                            "nodeType": "ExpressionStatement",
                            "src": "13496:40:11"
                          }
                        ]
                      }
                    },
                    "id": 2452,
                    "nodeType": "IfStatement",
                    "src": "13219:1260:11",
                    "trueBody": {
                      "id": 2330,
                      "nodeType": "Block",
                      "src": "13252:59:11",
                      "statements": [
                        {
                          "id": 2329,
                          "nodeType": "Throw",
                          "src": "13295:5:11"
                        }
                      ]
                    }
                  },
                  "id": 2453,
                  "nodeType": "IfStatement",
                  "src": "13021:1458:11",
                  "trueBody": {
                    "id": 2324,
                    "nodeType": "Block",
                    "src": "13053:160:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 2313,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13146:1:11",
                              "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": 2310,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2253,
                              "src": "13132:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1577,
                            "src": "13132:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 2314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13132:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2315,
                        "nodeType": "ExpressionStatement",
                        "src": "13132:16:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2317,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2235,
                              "src": "13174:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2318,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "13181:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2319,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "13181:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2320,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2286,
                              "src": "13193:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 2321,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13200:1:11",
                              "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",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 2316,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1655,
                            "src": "13162:11:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 2322,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13162:40:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2323,
                        "nodeType": "ExpressionStatement",
                        "src": "13162:40:11"
                      }
                    ]
                  }
                }
              ]
            },
            "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": 2455,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2235,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12606:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2234,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12606:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2237,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12621:11:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2236,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12621:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2239,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12634:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12634:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12605:43:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2241,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12649:0:11"
            },
            "scope": 3023,
            "src": "12587:1898:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2517,
              "nodeType": "Block",
              "src": "14649:783:11",
              "statements": [
                {
                  "assignments": [
                    2463
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2463,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2518,
                      "src": "14659:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2462,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "14659:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2469,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2464,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "14670:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 2466,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2465,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2457,
                        "src": "14681:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "14670:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 2468,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2467,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2459,
                      "src": "14689:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "14670:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14659:35:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 2474,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2471,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2463,
                            "src": "15126:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 2470,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "15118:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2472,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15118:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15134:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "15118:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2483,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2475,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "15151:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2480,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2476,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2463,
                                "src": "15157:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2477,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1411,
                              "src": "15157:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2478,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15157:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2479,
                            "name": "totalAuctionLength",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1620,
                            "src": "15178:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "15157:39:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 2481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15199:7:11",
                          "subdenomination": "weeks",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1209600_by_1",
                            "typeString": "int_const 1209600"
                          },
                          "value": "2"
                        },
                        "src": "15157:49:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15151:55:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "15118:88:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2486,
                  "nodeType": "IfStatement",
                  "src": "15114:99:11",
                  "trueBody": {
                    "id": 2485,
                    "nodeType": "Throw",
                    "src": "15208:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2490,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "15303:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15303:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2487,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "15290:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1496,
                      "src": "15290:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15290:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2493,
                  "nodeType": "ExpressionStatement",
                  "src": "15290:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 2497,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15338:1:11",
                        "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": 2494,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "15324:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1577,
                      "src": "15324:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15324:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2499,
                  "nodeType": "ExpressionStatement",
                  "src": "15324:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2500,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "15350:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2501,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2457,
                          "src": "15361:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15350:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2504,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2502,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2459,
                        "src": "15369:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "15350:24:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15382:1:11",
                          "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": 2505,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "15377:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2507,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15377:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "15350:34:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2509,
                  "nodeType": "ExpressionStatement",
                  "src": "15350:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2511,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2459,
                        "src": "15406:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2512,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2457,
                        "src": "15412:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15420:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 2514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15423:1:11",
                        "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": 2510,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1655,
                      "src": "15394:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 2515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15394:31:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2516,
                  "nodeType": "ExpressionStatement",
                  "src": "15394:31:11"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 2518,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2457,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 2518,
                  "src": "14619:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14619:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2459,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 2518,
                  "src": "14635:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2458,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14635:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14618:30:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2461,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14649:0:11"
            },
            "scope": 3023,
            "src": "14600:832:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2572,
              "nodeType": "Block",
              "src": "15649:344:11",
              "statements": [
                {
                  "assignments": [
                    2527
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2527,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2573,
                      "src": "15659:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2526,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "15659:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2531,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2528,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "15669:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2530,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2529,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2520,
                      "src": "15678:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15669:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15659:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2532,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2527,
                        "src": "15783:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2534,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "15783:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2536,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2527,
                            "src": "15798:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2537,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1687,
                          "src": "15798:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2538,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1629,
                          "src": "15807:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2535,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1891,
                        "src": "15794:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) view returns (uint256)"
                        }
                      },
                      "id": 2539,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15794:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15783:33:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2541,
                  "nodeType": "ExpressionStatement",
                  "src": "15783:33:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2547,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15844:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2548,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "15844:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 2549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15853:4:11",
                        "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": 2542,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15826:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2545,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "15826:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1541,
                      "src": "15826:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 2550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15826:32:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2551,
                  "nodeType": "ExpressionStatement",
                  "src": "15826:32:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2553,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2520,
                        "src": "15888:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2554,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2527,
                              "src": "15895:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2555,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "15895:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "15895:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 2557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15895:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2552,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "15869:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15869:41:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2559,
                  "nodeType": "ExpressionStatement",
                  "src": "15869:41:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2561,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2520,
                        "src": "15935:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2562,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2527,
                              "src": "15942:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2563,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "15942:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "15942:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 2565,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15942:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2566,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15958:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "15958:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2568,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15967:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "15967:18:11",
                        "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": 2560,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1665,
                      "src": "15920:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 2570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15920:66:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2571,
                  "nodeType": "ExpressionStatement",
                  "src": "15920:66:11"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 2573,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2523,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2520,
                    "src": "15642:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2522,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "15632:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15632:16:11"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2520,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "15617:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2519,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15617:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15616:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15649:0:11"
            },
            "scope": 3023,
            "src": "15592:401:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2607,
              "nodeType": "Block",
              "src": "16270:157:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2583,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2577,
                      "src": "16284:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16296:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16284:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2587,
                  "nodeType": "IfStatement",
                  "src": "16280:24:11",
                  "trueBody": {
                    "id": 2586,
                    "nodeType": "Throw",
                    "src": "16299:5:11"
                  }
                },
                {
                  "assignments": [
                    2589
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2589,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2608,
                      "src": "16315:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2588,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "16315:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2593,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2590,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "16325:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2592,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2591,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2575,
                      "src": "16334:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16325:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16315:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2599,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2577,
                        "src": "16366:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2594,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2589,
                          "src": "16350:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2597,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "16350:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1496,
                      "src": "16350:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16350:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2601,
                  "nodeType": "ExpressionStatement",
                  "src": "16350:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2603,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2575,
                        "src": "16404:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2604,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2577,
                        "src": "16411:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2602,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "16385:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2605,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16385:35:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2606,
                  "nodeType": "ExpressionStatement",
                  "src": "16385:35:11"
                }
              ]
            },
            "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": 2608,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2580,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2575,
                    "src": "16263:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2581,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2579,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "16253:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16253:16:11"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2575,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2608,
                  "src": "16220:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16220:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2577,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2608,
                  "src": "16235:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16235:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16219:33:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16270:0:11"
            },
            "scope": 3023,
            "src": "16202:225:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2680,
              "nodeType": "Block",
              "src": "16684:368:11",
              "statements": [
                {
                  "assignments": [
                    2617
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2617,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2681,
                      "src": "16694:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2616,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "16694:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2621,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2618,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "16704:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2620,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2619,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2610,
                      "src": "16713:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16704:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16694:25:11"
                },
                {
                  "assignments": [
                    2623
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2623,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 2681,
                      "src": "16729:17:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2622,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "16729:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2626,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 2624,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2617,
                      "src": "16749:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry storage pointer"
                      }
                    },
                    "id": 2625,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1683,
                    "src": "16749:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16729:26:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2641,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2627,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "16769:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2631,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2628,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2617,
                            "src": "16775:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2629,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "registrationDate",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1685,
                          "src": "16775:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2630,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16796:7:11",
                          "subdenomination": "years",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "1"
                        },
                        "src": "16775:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16769:34:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 2640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2635,
                            "name": "rootNode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1600,
                            "src": "16817:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2633,
                            "name": "ens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1598,
                            "src": "16807:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_AbstractENS_$3407",
                              "typeString": "contract AbstractENS"
                            }
                          },
                          "id": 2634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3336,
                          "src": "16807:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 2636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16807:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2638,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "16838:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 2637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16830:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16830:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "16807:36:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16769:74:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2643,
                  "nodeType": "IfStatement",
                  "src": "16765:85:11",
                  "trueBody": {
                    "id": 2642,
                    "nodeType": "Throw",
                    "src": "16845:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2644,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16861:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2646,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "16861:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16871:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16861:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2649,
                  "nodeType": "ExpressionStatement",
                  "src": "16861:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2650,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16882:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2652,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "16882:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16897:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16882:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2655,
                  "nodeType": "ExpressionStatement",
                  "src": "16882:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2656,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16908:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2658,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "16908:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16922:1:11",
                          "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": 2659,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "16917:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2661,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16917:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16908:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2663,
                  "nodeType": "ExpressionStatement",
                  "src": "16908:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2665,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2610,
                        "src": "16955:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2664,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2874,
                      "src": "16935:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16935:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2667,
                  "nodeType": "ExpressionStatement",
                  "src": "16935:26:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 2671,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16994:4:11",
                        "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": 2668,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2623,
                        "src": "16971:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2670,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1577,
                      "src": "16971:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16971:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2673,
                  "nodeType": "ExpressionStatement",
                  "src": "16971:28:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2675,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2610,
                        "src": "17022:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2676,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2617,
                          "src": "17029:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2677,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "17029:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2674,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1671,
                      "src": "17009:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17009:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2679,
                  "nodeType": "ExpressionStatement",
                  "src": "17009:28:11"
                }
              ]
            },
            "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": 2681,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2613,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2610,
                    "src": "16677:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2614,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2612,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "16667:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16667:16:11"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2610,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2681,
                  "src": "16652:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2609,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16652:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16651:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2615,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16684:0:11"
            },
            "scope": 3023,
            "src": "16631:421:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2792,
              "nodeType": "Block",
              "src": "17522:635:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2694,
                          "name": "unhashedName",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2683,
                          "src": "17543:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 2693,
                        "name": "strlen",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1994,
                        "src": "17536:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (string memory) view returns (uint256)"
                        }
                      },
                      "id": 2695,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17536:20:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "36",
                      "id": 2696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17559:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_6_by_1",
                        "typeString": "int_const 6"
                      },
                      "value": "6"
                    },
                    "src": "17536:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2699,
                  "nodeType": "IfStatement",
                  "src": "17532:35:11",
                  "trueBody": {
                    "id": 2698,
                    "nodeType": "Throw",
                    "src": "17562:5:11"
                  }
                },
                {
                  "assignments": [
                    2701
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2701,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2793,
                      "src": "17577:12:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2700,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17577:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2705,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2703,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "17597:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2702,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "17592:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2704,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17592:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17577:33:11"
                },
                {
                  "assignments": [
                    2707
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2707,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2793,
                      "src": "17621:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2706,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "17621:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2711,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2708,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "17631:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2710,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2709,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2701,
                      "src": "17640:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "17631:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17621:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2713,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2701,
                        "src": "17676:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2712,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2874,
                      "src": "17656:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17656:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2715,
                  "nodeType": "ExpressionStatement",
                  "src": "17656:25:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2717,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2707,
                            "src": "17704:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2718,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1683,
                          "src": "17704:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2716,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17696:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17696:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2720,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17715:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17696:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2762,
                  "nodeType": "IfStatement",
                  "src": "17692:310:11",
                  "trueBody": {
                    "id": 2761,
                    "nodeType": "Block",
                    "src": "17718:284:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2722,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2707,
                              "src": "17833:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2724,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1687,
                            "src": "17833:7:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2726,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "17847:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 2727,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1687,
                                "src": "17847:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2728,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1629,
                                "src": "17856:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2725,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1891,
                              "src": "17843:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) view returns (uint256)"
                              }
                            },
                            "id": 2729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17843:22:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17833:32:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2731,
                        "nodeType": "ExpressionStatement",
                        "src": "17833:32:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2740,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2737,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "17897:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 2738,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1687,
                                "src": "17897:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 2739,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "17905:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "17897:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2741,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "17908:5:11",
                              "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": 2732,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17879:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2735,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17879:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2736,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1541,
                            "src": "17879:17:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 2742,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17879:35:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2743,
                        "nodeType": "ExpressionStatement",
                        "src": "17879:35:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2749,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "17944:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2750,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "17944:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2744,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17928:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2747,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17928:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2748,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1496,
                            "src": "17928:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address) external"
                            }
                          },
                          "id": 2751,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17928:27:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2752,
                        "nodeType": "ExpressionStatement",
                        "src": "17928:27:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 2758,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "17986:4:11",
                              "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": 2753,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17969:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2756,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17969:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2757,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1577,
                            "src": "17969:16:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 2759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17969:22:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2760,
                        "nodeType": "ExpressionStatement",
                        "src": "17969:22:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2764,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2701,
                        "src": "18028:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2765,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "18034:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2766,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "18048:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2767,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "18048:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2768,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "18057:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2769,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "18057:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2763,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1681,
                      "src": "18012:15:11",
                      "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": 2770,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18012:64:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2771,
                  "nodeType": "ExpressionStatement",
                  "src": "18012:64:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2772,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18087:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2774,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "18087:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18097:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18087:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2777,
                  "nodeType": "ExpressionStatement",
                  "src": "18087:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2778,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18108:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2780,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "18108:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18123:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18108:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2783,
                  "nodeType": "ExpressionStatement",
                  "src": "18108:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2784,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18134:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2786,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "18134:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2788,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18148:1:11",
                          "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": 2787,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "18143:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18143:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "18134:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2791,
                  "nodeType": "ExpressionStatement",
                  "src": "18134:16:11"
                }
              ]
            },
            "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": 2793,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2687,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "17495:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2686,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "17490:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17490:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 2689,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1617,
                      "src": "17510:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                        "typeString": "type(enum Registrar.Mode)"
                      }
                    },
                    "id": 2690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "17510:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  }
                ],
                "id": 2691,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2685,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1763,
                  "src": "17482:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$1617_$",
                    "typeString": "modifier (bytes32,enum Registrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "17482:39:11"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2683,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 2793,
                  "src": "17461:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2682,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "17461:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17460:21:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2692,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17522:0:11"
            },
            "scope": 3023,
            "src": "17437:720:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2827,
              "nodeType": "Block",
              "src": "18813:180:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2799,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2796,
                        "src": "18827:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18827:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2801,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18844:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18827:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2804,
                  "nodeType": "IfStatement",
                  "src": "18823:29:11",
                  "trueBody": {
                    "id": 2803,
                    "nodeType": "Throw",
                    "src": "18847:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2806,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2796,
                            "src": "18872:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2811,
                          "indexExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2810,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2807,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2796,
                                "src": "18879:6:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2808,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "18879:13:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 2809,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18895:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "18879:17:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18872:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2805,
                        "name": "state",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1748,
                        "src": "18866:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                          "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                        }
                      },
                      "id": 2812,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18866:32:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2813,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "18902:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18902:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "18866:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2817,
                  "nodeType": "IfStatement",
                  "src": "18862:57:11",
                  "trueBody": {
                    "id": 2816,
                    "nodeType": "Throw",
                    "src": "18914:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2819,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2796,
                            "src": "18950:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "18950:13:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2821,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18966:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "18950:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2823,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2796,
                        "src": "18969:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2824,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "18977:8:11",
                        "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": 2818,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2933,
                      "src": "18930:19:11",
                      "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": 2825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18930:56:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2826,
                  "nodeType": "ExpressionStatement",
                  "src": "18930:56:11"
                }
              ]
            },
            "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       [sha3('foo'), sha3('bar')].",
            "id": 2828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2796,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2828,
                  "src": "18795:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2794,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "18795:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2795,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "18795:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18794:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2798,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18813:0:11"
            },
            "scope": 3023,
            "src": "18776:217:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2873,
              "nodeType": "Block",
              "src": "19052:253:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2835,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "19076:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2833,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "19066:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3336,
                        "src": "19066:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2836,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19066:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2838,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "19097:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "19089:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2839,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19089:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "19066:36:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2872,
                  "nodeType": "IfStatement",
                  "src": "19062:237:11",
                  "trueBody": {
                    "id": 2871,
                    "nodeType": "Block",
                    "src": "19104:195:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2844,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1600,
                              "src": "19138:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2845,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2830,
                              "src": "19148:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2847,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3473,
                                  "src": "19163:4:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Registrar_$3023",
                                    "typeString": "contract Registrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_Registrar_$3023",
                                    "typeString": "contract Registrar"
                                  }
                                ],
                                "id": 2846,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "19155:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2848,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19155:13:11",
                              "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": 2841,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19118:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2843,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3366,
                            "src": "19118:19:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,bytes32,address) external"
                            }
                          },
                          "id": 2849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19118:51:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2850,
                        "nodeType": "ExpressionStatement",
                        "src": "19118:51:11"
                      },
                      {
                        "assignments": [
                          2851
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2851,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 2874,
                            "src": "19183:8:11",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": null,
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2856,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2853,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1600,
                              "src": "19199:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2854,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2830,
                              "src": "19209:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2852,
                            "name": "sha3",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3432,
                            "src": "19194:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 2855,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19194:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "19183:32:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2860,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2851,
                              "src": "19245:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2861,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19251:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2857,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19229:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2859,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3373,
                            "src": "19229:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2862,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19229:24:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2863,
                        "nodeType": "ExpressionStatement",
                        "src": "19229:24:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2867,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2851,
                              "src": "19280:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2868,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19286:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2864,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19267:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2866,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3357,
                            "src": "19267:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19267:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2870,
                        "nodeType": "ExpressionStatement",
                        "src": "19267:21:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 2874,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2830,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 2874,
                  "src": "19028:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2829,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19028:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19027:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2832,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19052:0:11"
            },
            "scope": 3023,
            "src": "18999:306:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2932,
              "nodeType": "Block",
              "src": "19391:404:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2887,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19459:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2888,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2879,
                          "src": "19465:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2890,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2889,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2876,
                          "src": "19472:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "19465:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2892,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "19486:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 2891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "19478:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2893,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19478:13:11",
                        "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": 2884,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19439:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2886,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3366,
                      "src": "19439:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address) external"
                      }
                    },
                    "id": 2894,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19439:53:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2895,
                  "nodeType": "ExpressionStatement",
                  "src": "19439:53:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2903,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2896,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2881,
                      "src": "19502:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2898,
                          "name": "node",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2881,
                          "src": "19514:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2899,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2879,
                            "src": "19520:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2901,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2900,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2876,
                            "src": "19527:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "19520:11:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2897,
                        "name": "sha3",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3432,
                        "src": "19509:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 2902,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19509:23:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "19502:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2904,
                  "nodeType": "ExpressionStatement",
                  "src": "19502:30:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2905,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2876,
                      "src": "19599:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2906,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19605:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19599:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2917,
                  "nodeType": "IfStatement",
                  "src": "19595:80:11",
                  "trueBody": {
                    "id": 2916,
                    "nodeType": "Block",
                    "src": "19608:67:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2911,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2909,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2876,
                                "src": "19642:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 2910,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "19648:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "19642:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2912,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2879,
                              "src": "19651:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2913,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2881,
                              "src": "19659:4:11",
                              "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": 2908,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2933,
                            "src": "19622:19:11",
                            "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": 2914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19622:42:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2915,
                        "nodeType": "ExpressionStatement",
                        "src": "19622:42:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2921,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19749:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19755:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2918,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19733:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2920,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3373,
                      "src": "19733:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2923,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19733:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2924,
                  "nodeType": "ExpressionStatement",
                  "src": "19733:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2928,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19780:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19786:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2925,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19767:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2927,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3357,
                      "src": "19767:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19767:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2931,
                  "nodeType": "ExpressionStatement",
                  "src": "19767:21:11"
                }
              ]
            },
            "documentation": null,
            "id": 2933,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2876,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19340:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2875,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "19340:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2879,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19350:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2877,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "19350:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2878,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "19350:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2881,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19368:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2880,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19368:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19339:42:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2883,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19391:0:11"
            },
            "scope": 3023,
            "src": "19311:484:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3005,
              "nodeType": "Block",
              "src": "20088:486:11",
              "statements": [
                {
                  "assignments": [
                    2941
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2941,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 3006,
                      "src": "20098:13:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2946,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2944,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "20124:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2942,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "20114:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3336,
                      "src": "20114:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 2945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20114:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20098:35:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2947,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2941,
                      "src": "20147:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2949,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "20168:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2948,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "20160:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2950,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20160:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "20147:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2953,
                  "nodeType": "IfStatement",
                  "src": "20143:37:11",
                  "trueBody": {
                    "id": 2952,
                    "nodeType": "Throw",
                    "src": "20175:5:11"
                  }
                },
                {
                  "assignments": [
                    2955
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2955,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 3006,
                      "src": "20219:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2954,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "20219:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2959,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2956,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "20229:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2958,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2957,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2935,
                      "src": "20238:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "20229:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20219:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2965,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2941,
                        "src": "20274:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2960,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20254:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2963,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "20254:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2964,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1508,
                      "src": "20254:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20254:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2967,
                  "nodeType": "ExpressionStatement",
                  "src": "20254:30:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2972,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2935,
                        "src": "20397:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2973,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20404:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2974,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "20404:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2975,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20412:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2976,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "20412:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2969,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2941,
                            "src": "20362:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 2968,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3023,
                          "src": "20352:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$3023_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 2970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20352:20:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$3023",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 2971,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3022,
                      "src": "20352:44:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$1596_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 2977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20352:79:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2978,
                  "nodeType": "ExpressionStatement",
                  "src": "20352:79:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2979,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20472:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2981,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "20472:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "20486:1:11",
                          "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": 2982,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "20481:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20481:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "20472:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2986,
                  "nodeType": "ExpressionStatement",
                  "src": "20472:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2987,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20498:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2989,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1685,
                      "src": "20498:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20519:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20498:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2992,
                  "nodeType": "ExpressionStatement",
                  "src": "20498:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2993,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20530:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2995,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "20530:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20540:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20530:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2998,
                  "nodeType": "ExpressionStatement",
                  "src": "20530:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2999,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20551:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 3001,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "20551:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3002,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20566:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20551:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3004,
                  "nodeType": "ExpressionStatement",
                  "src": "20551:16:11"
                }
              ]
            },
            "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": 3006,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2938,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2935,
                    "src": "20081:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2939,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2937,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "20071:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "20071:16:11"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2936,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2935,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3006,
                  "src": "20056:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2934,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20056:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20055:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2940,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20088:0:11"
            },
            "scope": 3023,
            "src": "20028:546:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3021,
              "nodeType": "Block",
              "src": "21051:82:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3015,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3008,
                    "src": "21061:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3016,
                  "nodeType": "ExpressionStatement",
                  "src": "21061:4:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3017,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3010,
                    "src": "21067:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 3018,
                  "nodeType": "ExpressionStatement",
                  "src": "21067:4:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3019,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3012,
                    "src": "21073:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3020,
                  "nodeType": "ExpressionStatement",
                  "src": "21073:16:11"
                }
              ]
            },
            "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": 3022,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3008,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21003:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3007,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21003:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3010,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21017:9:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3009,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1596,
                    "src": "21017:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3012,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21028:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3011,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "21028:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21002:48:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 3014,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21051:0:11"
            },
            "scope": 3023,
            "src": "20970:163:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3024,
        "src": "2898:18238:11"
      }
    ],
    "src": "0:21137:11"
  },
  "legacyAST": {
    "absolutePath": "/Users/brett/Development/aragon/aragon-id/contracts/test/ens/Registrar.sol",
    "exportedSymbols": {
      "Deed": [
        1596
      ],
      "Registrar": [
        3023
      ]
    },
    "id": 3024,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1403,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:11"
      },
      {
        "absolutePath": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
        "file": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
        "id": 1404,
        "nodeType": "ImportDirective",
        "scope": 3024,
        "sourceUnit": 3408,
        "src": "388:54:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Deed to hold ether in exchange for ownership of a node\n@dev The deed can be controlled only by the registrar and can only send ether back to the owner.",
        "fullyImplemented": true,
        "id": 1596,
        "linearizedBaseContracts": [
          1596
        ],
        "name": "Deed",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1406,
            "name": "registrar",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "638:24:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1405,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "638:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1409,
            "name": "burn",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "668:30:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1407,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "668:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307864656164",
              "id": 1408,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "692:6:11",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_57005_by_1",
                "typeString": "int_const 57005"
              },
              "value": "0xdead"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1411,
            "name": "creationDate",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "704:24:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1410,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "704:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1413,
            "name": "owner",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "734:20:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1412,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "734:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1415,
            "name": "previousOwner",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "760:28:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1414,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "760:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1417,
            "name": "value",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "794:17:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1416,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "794:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1421,
            "name": "OwnerChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1419,
                  "indexed": false,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1421,
                  "src": "836:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1418,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "835:18:11"
            },
            "src": "817:37:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1423,
            "name": "DeedClosed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1422,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "875:2:11"
            },
            "src": "859:19:11"
          },
          {
            "constant": false,
            "id": 1425,
            "name": "active",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "883:11:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 1424,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "883:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1434,
              "nodeType": "Block",
              "src": "924:62:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1427,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "938:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1428,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "938:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1429,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "952:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "938:23:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1432,
                  "nodeType": "IfStatement",
                  "src": "934:34:11",
                  "trueBody": {
                    "id": 1431,
                    "nodeType": "Throw",
                    "src": "963:5:11"
                  }
                },
                {
                  "id": 1433,
                  "nodeType": "PlaceholderStatement",
                  "src": "978:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1435,
            "name": "onlyRegistrar",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "924:0:11"
            },
            "src": "901:85:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1442,
              "nodeType": "Block",
              "src": "1012:46:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "1026:7:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 1437,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "1027:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1440,
                  "nodeType": "IfStatement",
                  "src": "1022:18:11",
                  "trueBody": {
                    "id": 1439,
                    "nodeType": "Throw",
                    "src": "1035:5:11"
                  }
                },
                {
                  "id": 1441,
                  "nodeType": "PlaceholderStatement",
                  "src": "1050:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1443,
            "name": "onlyActive",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1436,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1012:0:11"
            },
            "src": "992:66:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1470,
              "nodeType": "Block",
              "src": "1102:141:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1448,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1112:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1449,
                      "name": "_owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1445,
                      "src": "1120:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1112:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1451,
                  "nodeType": "ExpressionStatement",
                  "src": "1112:14:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1452,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "1136:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1453,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "1148:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1454,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1148:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1136:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1456,
                  "nodeType": "ExpressionStatement",
                  "src": "1136:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1457,
                      "name": "creationDate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1411,
                      "src": "1168:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1458,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3424,
                      "src": "1183:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1168:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1460,
                  "nodeType": "ExpressionStatement",
                  "src": "1168:18:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1461,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "1196:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 1462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1205:4:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1196:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1464,
                  "nodeType": "ExpressionStatement",
                  "src": "1196:13:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1468,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1465,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1219:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1466,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "1227:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1467,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1227:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1219:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1469,
                  "nodeType": "ExpressionStatement",
                  "src": "1219:17:11"
                }
              ]
            },
            "documentation": null,
            "id": 1471,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "Deed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1445,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1471,
                  "src": "1078:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1444,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1078:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1077:16:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 1447,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1102:0:11"
            },
            "scope": 1596,
            "src": "1064:179:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1495,
              "nodeType": "Block",
              "src": "1299:193:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1478,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1473,
                      "src": "1313:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1325:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1313:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1482,
                  "nodeType": "IfStatement",
                  "src": "1309:24:11",
                  "trueBody": {
                    "id": 1481,
                    "nodeType": "Throw",
                    "src": "1328:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1483,
                      "name": "previousOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1415,
                      "src": "1343:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1484,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1359:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1343:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1486,
                  "nodeType": "ExpressionStatement",
                  "src": "1343:21:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1489,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1487,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1437:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1488,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1473,
                      "src": "1445:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1437:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1490,
                  "nodeType": "ExpressionStatement",
                  "src": "1437:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1492,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1473,
                        "src": "1476:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1491,
                      "name": "OwnerChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1421,
                      "src": "1463:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 1493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1463:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1494,
                  "nodeType": "ExpressionStatement",
                  "src": "1463:22:11"
                }
              ]
            },
            "documentation": null,
            "id": 1496,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1476,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1475,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1285:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1285:13:11"
              }
            ],
            "name": "setOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1473,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1496,
                  "src": "1267:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1472,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1267:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1266:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1477,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1299:0:11"
            },
            "scope": 1596,
            "src": "1249:243:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1507,
              "nodeType": "Block",
              "src": "1556:41:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1503,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "1566:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1504,
                      "name": "newRegistrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1498,
                      "src": "1578:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1566:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1506,
                  "nodeType": "ExpressionStatement",
                  "src": "1566:24:11"
                }
              ]
            },
            "documentation": null,
            "id": 1508,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1501,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1500,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1542:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1542:13:11"
              }
            ],
            "name": "setRegistrar",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1498,
                  "name": "newRegistrar",
                  "nodeType": "VariableDeclaration",
                  "scope": 1508,
                  "src": "1520:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1520:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1519:22:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1502,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1556:0:11"
            },
            "scope": 1596,
            "src": "1498:99:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1540,
              "nodeType": "Block",
              "src": "1684:248:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1519,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1757:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1520,
                      "name": "newValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1510,
                      "src": "1765:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1757:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1523,
                  "nodeType": "IfStatement",
                  "src": "1753:27:11",
                  "trueBody": {
                    "id": 1522,
                    "nodeType": "Throw",
                    "src": "1775:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1526,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1524,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1790:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1525,
                      "name": "newValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1510,
                      "src": "1798:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1790:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1527,
                  "nodeType": "ExpressionStatement",
                  "src": "1790:16:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1537,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "1864:36:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1530,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3471,
                                "src": "1876:4:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1531,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1876:12:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1532,
                              "name": "newValue",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1510,
                              "src": "1891:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1876:23:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1528,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1413,
                            "src": "1865:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 1529,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "send",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1865:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) returns (bool)"
                          }
                        },
                        "id": 1534,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1865:35:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1536,
                      "name": "throwOnFailure",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1512,
                      "src": "1904:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1864:54:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1539,
                  "nodeType": "IfStatement",
                  "src": "1860:65:11",
                  "trueBody": {
                    "id": 1538,
                    "nodeType": "Throw",
                    "src": "1920:5:11"
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1541,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1515,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1514,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1659:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1659:13:11"
              },
              {
                "arguments": null,
                "id": 1517,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1516,
                  "name": "onlyActive",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1443,
                  "src": "1673:10:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1673:10:11"
              }
            ],
            "name": "setBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1510,
                  "name": "newValue",
                  "nodeType": "VariableDeclaration",
                  "scope": 1541,
                  "src": "1623:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1509,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1623:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1512,
                  "name": "throwOnFailure",
                  "nodeType": "VariableDeclaration",
                  "scope": 1541,
                  "src": "1638:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1511,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1638:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1622:36:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1518,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1684:0:11"
            },
            "scope": 1596,
            "src": "1603:329:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1576,
              "nodeType": "Block",
              "src": "2151:152:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1550,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "2161:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 1551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2170:5:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2161:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1553,
                  "nodeType": "ExpressionStatement",
                  "src": "2161:14:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "2189:55:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1562,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1558,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31303030",
                                        "id": 1556,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2203:4:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1000_by_1",
                                          "typeString": "int_const 1000"
                                        },
                                        "value": "1000"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 1557,
                                        "name": "refundRatio",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1543,
                                        "src": "2210:11:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "2203:18:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 1559,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "2202:20:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1560,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3471,
                                    "src": "2225:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$1596",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 1561,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balance",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "2225:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2202:35:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 1563,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2201:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 1564,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2239:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "2201:42:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1554,
                          "name": "burn",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1409,
                          "src": "2191:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 1555,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "send",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2191:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (uint256) returns (bool)"
                        }
                      },
                      "id": 1566,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2191:53:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1569,
                  "nodeType": "IfStatement",
                  "src": "2185:66:11",
                  "trueBody": {
                    "id": 1568,
                    "nodeType": "Throw",
                    "src": "2246:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1570,
                      "name": "DeedClosed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1423,
                      "src": "2261:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2261:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1572,
                  "nodeType": "ExpressionStatement",
                  "src": "2261:12:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1573,
                      "name": "destroyDeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1595,
                      "src": "2283:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2283:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1575,
                  "nodeType": "ExpressionStatement",
                  "src": "2283:13:11"
                }
              ]
            },
            "documentation": "@dev Close a deed and refund a specified fraction of the bid value\n     * @param refundRatio The amount*1/1000 to refund",
            "id": 1577,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1546,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1545,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "2126:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2126:13:11"
              },
              {
                "arguments": null,
                "id": 1548,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1547,
                  "name": "onlyActive",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1443,
                  "src": "2140:10:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2140:10:11"
              }
            ],
            "name": "closeDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1543,
                  "name": "refundRatio",
                  "nodeType": "VariableDeclaration",
                  "scope": 1577,
                  "src": "2108:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1542,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2108:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2107:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2151:0:11"
            },
            "scope": 1596,
            "src": "2089:214:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1594,
              "nodeType": "Block",
              "src": "2422:356:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1580,
                    "name": "active",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1425,
                    "src": "2436:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1582,
                  "nodeType": "IfStatement",
                  "src": "2432:17:11",
                  "trueBody": {
                    "id": 1581,
                    "nodeType": "Throw",
                    "src": "2444:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1585,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3471,
                          "src": "2714:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        },
                        "id": 1586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2714:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1583,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1413,
                        "src": "2703:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "send",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2703:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (uint256) returns (bool)"
                      }
                    },
                    "id": 1587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2703:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1593,
                  "nodeType": "IfStatement",
                  "src": "2699:73:11",
                  "trueBody": {
                    "id": 1592,
                    "nodeType": "Block",
                    "src": "2729:43:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1589,
                              "name": "burn",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1409,
                              "src": "2756:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1588,
                            "name": "selfdestruct",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3430,
                            "src": "2743:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 1590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2743:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1591,
                        "nodeType": "ExpressionStatement",
                        "src": "2743:18:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Close a deed and refund a specified fraction of the bid value",
            "id": 1595,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "destroyDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1578,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2419:2:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1579,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2422:0:11"
            },
            "scope": 1596,
            "src": "2399:379:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3024,
        "src": "618:2162:11"
      },
      {
        "baseContracts": [],
        "contractDependencies": [
          1596
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 3023,
        "linearizedBaseContracts": [
          3023
        ],
        "name": "Registrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1598,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2923:22:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_AbstractENS_$3407",
              "typeString": "contract AbstractENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 1597,
              "name": "AbstractENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3407,
              "src": "2923:11:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                "typeString": "contract AbstractENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1600,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2951:23:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1599,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "2951:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1604,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2981:35:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
              "typeString": "mapping(bytes32 => struct Registrar.entry)"
            },
            "typeName": {
              "id": 1603,
              "keyType": {
                "id": 1601,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "2990:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "2981:26:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                "typeString": "mapping(bytes32 => struct Registrar.entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1602,
                "name": "entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1690,
                "src": "3001:5:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                  "typeString": "struct Registrar.entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1610,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3022:63:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 1609,
              "keyType": {
                "id": 1605,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3031:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3022:45:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 1608,
                "keyType": {
                  "id": 1606,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3050:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "3042:24:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 1607,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1596,
                  "src": "3061:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "Registrar.Mode",
            "id": 1617,
            "members": [
              {
                "id": 1611,
                "name": "Open",
                "nodeType": "EnumValue",
                "src": "3108:4:11"
              },
              {
                "id": 1612,
                "name": "Auction",
                "nodeType": "EnumValue",
                "src": "3114:7:11"
              },
              {
                "id": 1613,
                "name": "Owned",
                "nodeType": "EnumValue",
                "src": "3123:5:11"
              },
              {
                "id": 1614,
                "name": "Forbidden",
                "nodeType": "EnumValue",
                "src": "3130:9:11"
              },
              {
                "id": 1615,
                "name": "Reveal",
                "nodeType": "EnumValue",
                "src": "3141:6:11"
              },
              {
                "id": 1616,
                "name": "NotYetAvailable",
                "nodeType": "EnumValue",
                "src": "3149:15:11"
              }
            ],
            "name": "Mode",
            "nodeType": "EnumDefinition",
            "src": "3096:70:11"
          },
          {
            "constant": true,
            "id": 1620,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3172:43:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1618,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3172:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 1619,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3209:6:11",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1623,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3221:39:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1621,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3221:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 1622,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3252:8:11",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1626,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3266:45:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1624,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3266:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 1625,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3304:7:11",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1629,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3318:35:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1627,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "3318:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 1628,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3343:10:11",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1631,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3359:27:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1630,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "3359:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1637,
            "name": "AuctionStarted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1633,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1637,
                  "src": "3414:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1632,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3414:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1635,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1637,
                  "src": "3436:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1634,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3436:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3413:45:11"
            },
            "src": "3393:66:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1645,
            "name": "NewBid",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1639,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3477:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1638,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3477:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1641,
                  "indexed": true,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3499:22:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1640,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3499:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1643,
                  "indexed": false,
                  "name": "deposit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3523:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1642,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3523:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3476:60:11"
            },
            "src": "3464:73:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1655,
            "name": "BidRevealed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1647,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3560:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1646,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3560:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1649,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3582:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1648,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3582:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1651,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3605:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1650,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3605:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1653,
                  "indexed": false,
                  "name": "status",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3617:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1652,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3617:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3559:71:11"
            },
            "src": "3542:89:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1665,
            "name": "HashRegistered",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1657,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3657:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1656,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3657:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1659,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3679:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1658,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3679:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1661,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3702:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1660,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3702:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1663,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3714:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1662,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3714:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3656:80:11"
            },
            "src": "3636:101:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1671,
            "name": "HashReleased",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1667,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1671,
                  "src": "3761:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1666,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3761:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1669,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1671,
                  "src": "3783:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1668,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3783:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3760:34:11"
            },
            "src": "3742:53:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1681,
            "name": "HashInvalidated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1673,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3822:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1672,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3822:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1675,
                  "indexed": true,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3844:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1674,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3844:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1677,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3865:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1676,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3865:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1679,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3877:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1678,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3877:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3821:78:11"
            },
            "src": "3800:100:11"
          },
          {
            "canonicalName": "Registrar.entry",
            "id": 1690,
            "members": [
              {
                "constant": false,
                "id": 1683,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3929:9:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$1596",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1682,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1596,
                  "src": "3929:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1685,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3948:21:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1684,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3948:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1687,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3979:10:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1686,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3979:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1689,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3999:15:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1688,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3999:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "entry",
            "nodeType": "StructDefinition",
            "scope": 3023,
            "src": "3906:115:11",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1747,
              "nodeType": "Block",
              "src": "4304:526:11",
              "statements": [
                {
                  "assignments": [
                    1697
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1697,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 1748,
                      "src": "4314:9:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1701,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1698,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "4326:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 1700,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1699,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1692,
                      "src": "4335:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4326:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4314:27:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "4364:22:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1703,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1692,
                          "src": "4375:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1704,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "4382:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1702,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2010,
                        "src": "4365:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 1705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4365:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1711,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "4450:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1712,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1697,
                          "src": "4456:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1713,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "4456:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4450:28:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 1744,
                      "nodeType": "Block",
                      "src": "4668:156:11",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1734,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1731,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1697,
                                "src": "4686:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 1732,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1689,
                              "src": "4686:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1733,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4706:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "4686:21:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1742,
                            "nodeType": "Block",
                            "src": "4764:50:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1739,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4789:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1740,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4789:10:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1741,
                                "nodeType": "Return",
                                "src": "4782:17:11"
                              }
                            ]
                          },
                          "id": 1743,
                          "nodeType": "IfStatement",
                          "src": "4682:132:11",
                          "trueBody": {
                            "id": 1738,
                            "nodeType": "Block",
                            "src": "4709:49:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1735,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4734:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1736,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4734:9:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1737,
                                "nodeType": "Return",
                                "src": "4727:16:11"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 1745,
                    "nodeType": "IfStatement",
                    "src": "4446:378:11",
                    "trueBody": {
                      "id": 1730,
                      "nodeType": "Block",
                      "src": "4480:182:11",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1720,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1715,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3424,
                              "src": "4498:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1719,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1716,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1697,
                                  "src": "4504:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 1717,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1685,
                                "src": "4504:22:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1718,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1623,
                                "src": "4529:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "4504:37:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4498:43:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1728,
                            "nodeType": "Block",
                            "src": "4601:51:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1725,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4626:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1726,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4626:11:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1727,
                                "nodeType": "Return",
                                "src": "4619:18:11"
                              }
                            ]
                          },
                          "id": 1729,
                          "nodeType": "IfStatement",
                          "src": "4494:158:11",
                          "trueBody": {
                            "id": 1724,
                            "nodeType": "Block",
                            "src": "4543:52:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1721,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4568:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1722,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4568:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1723,
                                "nodeType": "Return",
                                "src": "4561:19:11"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 1746,
                  "nodeType": "IfStatement",
                  "src": "4360:464:11",
                  "trueBody": {
                    "id": 1710,
                    "nodeType": "Block",
                    "src": "4388:52:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1707,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1617,
                            "src": "4409:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 1708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4409:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$1617",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "functionReturnParameters": 1696,
                        "id": 1709,
                        "nodeType": "Return",
                        "src": "4402:27:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1748,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1692,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1748,
                  "src": "4265:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4265:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4264:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1695,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1748,
                  "src": "4298:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1694,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "4298:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4297:6:11"
            },
            "scope": 3023,
            "src": "4250:580:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1762,
              "nodeType": "Block",
              "src": "4881:61:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 1758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1755,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1750,
                          "src": "4901:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 1754,
                        "name": "state",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1748,
                        "src": "4895:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                          "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                        }
                      },
                      "id": 1756,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4895:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1757,
                      "name": "_state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1752,
                      "src": "4911:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "4895:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1760,
                  "nodeType": "IfStatement",
                  "src": "4891:33:11",
                  "trueBody": {
                    "id": 1759,
                    "nodeType": "Throw",
                    "src": "4919:5:11"
                  }
                },
                {
                  "id": 1761,
                  "nodeType": "PlaceholderStatement",
                  "src": "4934:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1763,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1753,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1750,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1763,
                  "src": "4853:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1749,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4853:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1752,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 1763,
                  "src": "4868:11:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1751,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "4868:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4852:28:11"
            },
            "src": "4836:106:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1786,
              "nodeType": "Block",
              "src": "4982:111:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 1772,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1768,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1765,
                            "src": "5002:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1767,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1748,
                          "src": "4996:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1769,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4996:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1770,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1617,
                          "src": "5012:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 1771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Owned",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5012:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "4996:26:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 1781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1773,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "5026:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5026:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1775,
                                "name": "_entries",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1604,
                                "src": "5040:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                                  "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                                }
                              },
                              "id": 1777,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1776,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1765,
                                "src": "5049:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5040:15:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage",
                                "typeString": "struct Registrar.entry storage ref"
                              }
                            },
                            "id": 1778,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "5040:20:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1779,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "5040:26:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1780,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5040:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "5026:42:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4996:72:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1784,
                  "nodeType": "IfStatement",
                  "src": "4992:83:11",
                  "trueBody": {
                    "id": 1783,
                    "nodeType": "Throw",
                    "src": "5070:5:11"
                  }
                },
                {
                  "id": 1785,
                  "nodeType": "PlaceholderStatement",
                  "src": "5085:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1787,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1766,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1765,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1787,
                  "src": "4967:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1764,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4967:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4966:15:11"
            },
            "src": "4948:145:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1810,
              "nodeType": "Block",
              "src": "5123:136:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 1797,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1789,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "5137:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1790,
                          "name": "registryStarted",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1631,
                          "src": "5143:15:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5137:21:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1792,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "5163:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1795,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1793,
                            "name": "registryStarted",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1631,
                            "src": "5169:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "34",
                            "id": 1794,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5187:7:11",
                            "subdenomination": "years",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_126144000_by_1",
                              "typeString": "int_const 126144000"
                            },
                            "value": "4"
                          },
                          "src": "5169:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5163:31:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "5137:57:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 1805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1800,
                            "name": "rootNode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1600,
                            "src": "5208:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1798,
                            "name": "ens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1598,
                            "src": "5198:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_AbstractENS_$3407",
                              "typeString": "contract AbstractENS"
                            }
                          },
                          "id": 1799,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3336,
                          "src": "5198:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 1801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5198:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1803,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "5229:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 1802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5221:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1804,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5221:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "5198:36:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5137:97:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1808,
                  "nodeType": "IfStatement",
                  "src": "5133:108:11",
                  "trueBody": {
                    "id": 1807,
                    "nodeType": "Throw",
                    "src": "5236:5:11"
                  }
                },
                {
                  "id": 1809,
                  "nodeType": "PlaceholderStatement",
                  "src": "5251:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1811,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1788,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5120:2:11"
            },
            "src": "5099:160:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1845,
              "nodeType": "Block",
              "src": "5348:124:11",
              "statements": [
                {
                  "assignments": [
                    1827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1827,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1846,
                      "src": "5358:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1826,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "5358:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1831,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1828,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "5368:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 1830,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1829,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1813,
                      "src": "5377:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5368:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5358:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1833,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1813,
                            "src": "5407:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1832,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1748,
                          "src": "5401:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5401:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1835,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5415:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1836,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "5415:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1837,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5423:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1838,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "5423:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1839,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5443:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1840,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "5443:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1841,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5452:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1842,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1689,
                        "src": "5452:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 1843,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5400:65:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$1617_$_t_contract$_Deed_$1596_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum Registrar.Mode,contract Deed,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 1825,
                  "id": 1844,
                  "nodeType": "Return",
                  "src": "5393:72:11"
                }
              ]
            },
            "documentation": null,
            "id": 1846,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1813,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5282:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1812,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5282:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5281:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1825,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1816,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5315:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1815,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "5315:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1818,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5321:7:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1817,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5321:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1820,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5330:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1819,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5330:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1822,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5336:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1821,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5336:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1824,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5342:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1823,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5342:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5314:33:11"
            },
            "scope": 3023,
            "src": "5265:207:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1872,
              "nodeType": "Block",
              "src": "5763:118:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1855,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1598,
                      "src": "5773:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_AbstractENS_$3407",
                        "typeString": "contract AbstractENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1856,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1848,
                      "src": "5779:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_AbstractENS_$3407",
                        "typeString": "contract AbstractENS"
                      }
                    },
                    "src": "5773:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AbstractENS_$3407",
                      "typeString": "contract AbstractENS"
                    }
                  },
                  "id": 1858,
                  "nodeType": "ExpressionStatement",
                  "src": "5773:10:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1859,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1600,
                      "src": "5793:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1860,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1850,
                      "src": "5804:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "5793:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1862,
                  "nodeType": "ExpressionStatement",
                  "src": "5793:20:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1863,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1631,
                      "src": "5823:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1864,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1852,
                          "src": "5841:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5854:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5841:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 1868,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "5871:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 1869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "5841:33:11",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 1867,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1852,
                        "src": "5858:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5823:51:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1871,
                  "nodeType": "ExpressionStatement",
                  "src": "5823:51:11"
                }
              ]
            },
            "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": 1873,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "Registrar",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1853,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1848,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5709:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_AbstractENS_$3407",
                    "typeString": "contract AbstractENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1847,
                    "name": "AbstractENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3407,
                    "src": "5709:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AbstractENS_$3407",
                      "typeString": "contract AbstractENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1850,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5727:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1849,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5727:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1852,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5746:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1851,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5746:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5708:54:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1854,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5763:0:11"
            },
            "scope": 3023,
            "src": "5690:191:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1890,
              "nodeType": "Block",
              "src": "6157:83:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1882,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1875,
                      "src": "6171:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1883,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1877,
                      "src": "6175:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6171:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1887,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1877,
                      "src": "6232:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1881,
                    "id": 1888,
                    "nodeType": "Return",
                    "src": "6225:8:11"
                  },
                  "id": 1889,
                  "nodeType": "IfStatement",
                  "src": "6167:66:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1885,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1875,
                      "src": "6197:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1881,
                    "id": 1886,
                    "nodeType": "Return",
                    "src": "6190:8:11"
                  }
                }
              ]
            },
            "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": 1891,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1875,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6104:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1874,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6104:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1877,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6112:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1876,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6112:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6103:16:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1880,
                  "name": "max",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6147:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1879,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6147:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6146:10:11"
            },
            "scope": 3023,
            "src": "6091:149:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1908,
              "nodeType": "Block",
              "src": "6516:83:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1900,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "6530:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1901,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1895,
                      "src": "6534:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6530:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1905,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1895,
                      "src": "6591:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1899,
                    "id": 1906,
                    "nodeType": "Return",
                    "src": "6584:8:11"
                  },
                  "id": 1907,
                  "nodeType": "IfStatement",
                  "src": "6526:66:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1903,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "6556:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1899,
                    "id": 1904,
                    "nodeType": "Return",
                    "src": "6549:8:11"
                  }
                }
              ]
            },
            "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": 1909,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1896,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1893,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6463:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1892,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6463:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1895,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6471:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1894,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6471:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6462:16:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1899,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1898,
                  "name": "min",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6506:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1897,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6506:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6505:10:11"
            },
            "scope": 3023,
            "src": "6450:149:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1993,
              "nodeType": "Block",
              "src": "6834:766:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1916,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1911,
                    "src": "6844:1:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 1917,
                  "nodeType": "ExpressionStatement",
                  "src": "6844:1:11"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1919,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 1994,
                      "src": "6962:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1918,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6962:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1920,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6962:8:11"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1922,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 1994,
                      "src": "6980:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1921,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6980:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1923,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6980:8:11"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 1919,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7021:3:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 1911,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7032:1:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 1911,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7067:1:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 1922,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7050:3:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 1919,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7071:3:11",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 1924,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "6998:99:11"
                },
                {
                  "body": {
                    "id": 1989,
                    "nodeType": "Block",
                    "src": "7131:443:11",
                    "statements": [
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1936,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 1994,
                            "src": "7145:7:11",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 1935,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "7145:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1937,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "7145:7:11"
                      },
                      {
                        "externalReferences": [
                          {
                            "ptr": {
                              "declaration": 1919,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "7192:3:11",
                              "valueSize": 1
                            }
                          },
                          {
                            "b": {
                              "declaration": 1936,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "7177:1:11",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 1938,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    b := and(mload(ptr), 0xFF)\n}",
                        "src": "7166:54:11"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 1941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1939,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1936,
                            "src": "7222:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 1940,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7226:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "7222:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 1949,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1947,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1936,
                              "src": "7283:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 1948,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7287:4:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "7283:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 1957,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1955,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1936,
                                "src": "7344:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 1956,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7348:4:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "7344:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 1965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1963,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1936,
                                  "src": "7405:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 1964,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7409:4:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "7405:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 1973,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 1971,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1936,
                                    "src": "7466:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 1972,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7470:4:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "7466:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 1983,
                                  "nodeType": "Block",
                                  "src": "7523:41:11",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1981,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 1979,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1919,
                                          "src": "7541:3:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 1980,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "7548:1:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "7541:8:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 1982,
                                      "nodeType": "ExpressionStatement",
                                      "src": "7541:8:11"
                                    }
                                  ]
                                },
                                "id": 1984,
                                "nodeType": "IfStatement",
                                "src": "7462:102:11",
                                "trueBody": {
                                  "id": 1978,
                                  "nodeType": "Block",
                                  "src": "7476:41:11",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1976,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 1974,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1919,
                                          "src": "7494:3:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 1975,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "7501:1:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "7494:8:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 1977,
                                      "nodeType": "ExpressionStatement",
                                      "src": "7494:8:11"
                                    }
                                  ]
                                }
                              },
                              "id": 1985,
                              "nodeType": "IfStatement",
                              "src": "7401:163:11",
                              "trueBody": {
                                "id": 1970,
                                "nodeType": "Block",
                                "src": "7415:41:11",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1968,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 1966,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1919,
                                        "src": "7433:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 1967,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7440:1:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "7433:8:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 1969,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7433:8:11"
                                  }
                                ]
                              }
                            },
                            "id": 1986,
                            "nodeType": "IfStatement",
                            "src": "7340:224:11",
                            "trueBody": {
                              "id": 1962,
                              "nodeType": "Block",
                              "src": "7354:41:11",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1960,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1958,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1919,
                                      "src": "7372:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 1959,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "7379:1:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "7372:8:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 1961,
                                  "nodeType": "ExpressionStatement",
                                  "src": "7372:8:11"
                                }
                              ]
                            }
                          },
                          "id": 1987,
                          "nodeType": "IfStatement",
                          "src": "7279:285:11",
                          "trueBody": {
                            "id": 1954,
                            "nodeType": "Block",
                            "src": "7293:41:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1952,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 1950,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1919,
                                    "src": "7311:3:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 1951,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7318:1:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "7311:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1953,
                                "nodeType": "ExpressionStatement",
                                "src": "7311:8:11"
                              }
                            ]
                          }
                        },
                        "id": 1988,
                        "nodeType": "IfStatement",
                        "src": "7218:346:11",
                        "trueBody": {
                          "id": 1946,
                          "nodeType": "Block",
                          "src": "7232:41:11",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1944,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 1942,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1919,
                                  "src": "7250:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1943,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7257:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "7250:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1945,
                              "nodeType": "ExpressionStatement",
                              "src": "7250:8:11"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1929,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1919,
                      "src": "7113:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1930,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1922,
                      "src": "7119:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7113:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1990,
                  "initializationExpression": {
                    "assignments": [
                      1926
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1926,
                        "name": "len",
                        "nodeType": "VariableDeclaration",
                        "scope": 1994,
                        "src": "7099:8:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1925,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7099:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1928,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1927,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7110:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7099:12:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7124:5:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1932,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1926,
                        "src": "7124:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1934,
                    "nodeType": "ExpressionStatement",
                    "src": "7124:5:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "7094:480:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1991,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1926,
                    "src": "7590:3:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1915,
                  "id": 1992,
                  "nodeType": "Return",
                  "src": "7583:10:11"
                }
              ]
            },
            "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": 1994,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1912,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1911,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 1994,
                  "src": "6791:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1910,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6791:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6790:10:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1914,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1994,
                  "src": "6828:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1913,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6828:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6827:6:11"
            },
            "scope": 3023,
            "src": "6775:825:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2009,
              "nodeType": "Block",
              "src": "8009:58:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2007,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2003,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1998,
                      "src": "8026:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2005,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1996,
                          "src": "8054:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2004,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2033,
                        "src": "8039:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 2006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8039:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8026:34:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2002,
                  "id": 2008,
                  "nodeType": "Return",
                  "src": "8019:41:11"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n\n     * Each name will be assigned a random date in which its auction \ncan 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",
            "id": 2010,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1996,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7946:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1995,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7946:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1998,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7961:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1997,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7961:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7945:32:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2001,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7996:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2000,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7996:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7995:14:11"
            },
            "scope": 3023,
            "src": "7927:140:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2032,
              "nodeType": "Block",
              "src": "8384:140:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2030,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2017,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1631,
                      "src": "8401:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2028,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2025,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2018,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1626,
                                  "src": "8421:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 2023,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 2020,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2012,
                                            "src": "8442:5:11",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 2019,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8437:4:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 2021,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8437:11:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 2022,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8452:3:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "8437:18:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 2024,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "8436:20:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8421:35:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2026,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "8420:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 2027,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8461:3:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "8420:44:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 2029,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "8419:46:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8401:64:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2016,
                  "id": 2031,
                  "nodeType": "Return",
                  "src": "8394:71:11"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n\n     * @param _hash The hash to start an auction on",
            "id": 2033,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2012,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2033,
                  "src": "8335:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2011,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8335:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8334:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2016,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2015,
                  "name": "timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2033,
                  "src": "8368:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2014,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8368:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8367:16:11"
            },
            "scope": 3023,
            "src": "8311:213:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2057,
              "nodeType": "Block",
              "src": "8780:126:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2042,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "8804:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2040,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "8794:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3336,
                        "src": "8794:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8794:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2045,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "8825:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8817:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2046,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8817:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "8794:36:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2056,
                  "nodeType": "IfStatement",
                  "src": "8790:101:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2051,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "8864:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2052,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2035,
                          "src": "8874:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2053,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2037,
                          "src": "8881:9:11",
                          "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": 2048,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "8844:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3366,
                        "src": "8844:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                          "typeString": "function (bytes32,bytes32,address) external"
                        }
                      },
                      "id": 2054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8844:47:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2055,
                    "nodeType": "ExpressionStatement",
                    "src": "8844:47:11"
                  }
                }
              ]
            },
            "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": 2058,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2035,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2058,
                  "src": "8737:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2034,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8737:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2037,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2058,
                  "src": "8752:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2036,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8752:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8736:34:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2039,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8780:0:11"
            },
            "scope": 3023,
            "src": "8709:197:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2114,
              "nodeType": "Block",
              "src": "9090:354:11",
              "statements": [
                {
                  "assignments": [
                    2065
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2065,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 2115,
                      "src": "9100:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2069,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2067,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "9117:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2066,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1748,
                      "src": "9111:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9111:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9100:23:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2070,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "9137:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2071,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "9145:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2072,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9145:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "9137:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2075,
                  "nodeType": "IfStatement",
                  "src": "9133:33:11",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 2064,
                    "id": 2074,
                    "nodeType": "Return",
                    "src": "9159:7:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2076,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "9179:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2077,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "9187:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Open",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9187:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "9179:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2081,
                  "nodeType": "IfStatement",
                  "src": "9175:28:11",
                  "trueBody": {
                    "id": 2080,
                    "nodeType": "Throw",
                    "src": "9198:5:11"
                  }
                },
                {
                  "assignments": [
                    2083
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2083,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 2115,
                      "src": "9214:16:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2082,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "9214:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2087,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2084,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "9233:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2086,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2085,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2060,
                      "src": "9242:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9233:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9214:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2088,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9258:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2090,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1685,
                      "src": "9258:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2091,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "9288:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2092,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "9294:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "9288:24:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9258:54:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2095,
                  "nodeType": "ExpressionStatement",
                  "src": "9258:54:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2096,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9322:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2098,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "9322:16:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2099,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9341:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9322:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2101,
                  "nodeType": "ExpressionStatement",
                  "src": "9322:20:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2102,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9352:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2104,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "9352:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2105,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9376:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9352:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2107,
                  "nodeType": "ExpressionStatement",
                  "src": "9352:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2109,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "9402:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2110,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2083,
                          "src": "9409:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2111,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "9409:27:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2108,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1637,
                      "src": "9387:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9387:50:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2113,
                  "nodeType": "ExpressionStatement",
                  "src": "9387:50:11"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 2115,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 2063,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2062,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1811,
                  "src": "9075:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9075:14:11"
              }
            ],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2060,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2115,
                  "src": "9060:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2059,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9060:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9059:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2064,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9090:0:11"
            },
            "scope": 3023,
            "src": "9038:406:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2140,
              "nodeType": "Block",
              "src": "10081:108:11",
              "statements": [
                {
                  "body": {
                    "id": 2138,
                    "nodeType": "Block",
                    "src": "10134:49:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2133,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2118,
                                "src": "10161:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2135,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2134,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2122,
                                "src": "10169:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10161:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2132,
                            "name": "startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2115,
                            "src": "10148:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 2136,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10148:24:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2137,
                        "nodeType": "ExpressionStatement",
                        "src": "10148:24:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2125,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2122,
                      "src": "10108:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2126,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2118,
                        "src": "10112:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2127,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10112:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10108:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2139,
                  "initializationExpression": {
                    "assignments": [
                      2122
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2122,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2141,
                        "src": "10096:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 2121,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10096:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2124,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10105:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10096:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2130,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "10128:4:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2129,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2122,
                        "src": "10128:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2131,
                    "nodeType": "ExpressionStatement",
                    "src": "10128:4:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "10091:92:11"
                }
              ]
            },
            "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": 2141,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2118,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "10061:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2116,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10061:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2117,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10061:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10060:19:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10081:0:11"
            },
            "scope": 3023,
            "src": "10038:151:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2161,
              "nodeType": "Block",
              "src": "10586:54:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2155,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2143,
                        "src": "10608:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2156,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2145,
                        "src": "10614:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2157,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2147,
                        "src": "10621:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2158,
                        "name": "salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "10628:4:11",
                        "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"
                        }
                      ],
                      "id": 2154,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "10603:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10603:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2153,
                  "id": 2160,
                  "nodeType": "Return",
                  "src": "10596:37:11"
                }
              ]
            },
            "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": 2162,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2143,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10494:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2142,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10494:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2145,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10508:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10508:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2147,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10523:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10523:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10535:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10535:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10493:55:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2152,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10567:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10567:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10566:19:11"
            },
            "scope": 3023,
            "src": "10478:162:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2215,
              "nodeType": "Block",
              "src": "11539:335:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2168,
                              "name": "sealedBids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1610,
                              "src": "11561:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                              }
                            },
                            "id": 2171,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2169,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "11572:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2170,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11572:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11561:22:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                              "typeString": "mapping(bytes32 => contract Deed)"
                            }
                          },
                          "id": 2173,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2172,
                            "name": "sealedBid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2164,
                            "src": "11584:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11561:33:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11553:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2174,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11553:42:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2175,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11598:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11553:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2178,
                  "nodeType": "IfStatement",
                  "src": "11549:57:11",
                  "trueBody": {
                    "id": 2177,
                    "nodeType": "Throw",
                    "src": "11601:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2179,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "11620:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2180,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11620:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2181,
                      "name": "minPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1629,
                      "src": "11632:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11620:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2184,
                  "nodeType": "IfStatement",
                  "src": "11616:31:11",
                  "trueBody": {
                    "id": 2183,
                    "nodeType": "Throw",
                    "src": "11642:5:11"
                  }
                },
                {
                  "assignments": [
                    2186
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2186,
                      "name": "newBid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2216,
                      "src": "11712:11:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2185,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "11712:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2197,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2194,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11754:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11754:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2191,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "11743:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2192,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11743:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 2188,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "11727:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$",
                                "typeString": "function (address) payable returns (contract Deed)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 2187,
                                "name": "Deed",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 1596,
                                "src": "11731:4:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              }
                            }
                          ],
                          "id": 2189,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11726:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$",
                            "typeString": "function (address) payable returns (contract Deed)"
                          }
                        },
                        "id": 2190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11726:16:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$value_$",
                          "typeString": "function (uint256) returns (function (address) payable returns (contract Deed))"
                        }
                      },
                      "id": 2193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11726:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$value",
                        "typeString": "function (address) payable returns (contract Deed)"
                      }
                    },
                    "id": 2196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11726:39:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11712:53:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2198,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "11775:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2202,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2199,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "11786:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2200,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11786:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11775:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2203,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2201,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2164,
                        "src": "11798:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11775:33:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2204,
                      "name": "newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2186,
                      "src": "11811:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "11775:42:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2206,
                  "nodeType": "ExpressionStatement",
                  "src": "11775:42:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2208,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2164,
                        "src": "11834:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2209,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11845:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11845:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2211,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11857:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11857:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2207,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1645,
                      "src": "11827:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 2213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11827:40:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2214,
                  "nodeType": "ExpressionStatement",
                  "src": "11827:40:11"
                }
              ]
            },
            "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": 2216,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2164,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2216,
                  "src": "11512:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2163,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11512:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11511:19:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 2166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11539:0:11"
            },
            "scope": 3023,
            "src": "11496:378:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2232,
              "nodeType": "Block",
              "src": "12290:65:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2225,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2219,
                        "src": "12314:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      ],
                      "id": 2224,
                      "name": "startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2141,
                      "src": "12300:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 2226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12300:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2227,
                  "nodeType": "ExpressionStatement",
                  "src": "12300:21:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2229,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2221,
                        "src": "12338:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2228,
                      "name": "newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2216,
                      "src": "12331:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12331:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2231,
                  "nodeType": "ExpressionStatement",
                  "src": "12331:17:11"
                }
              ]
            },
            "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": 2233,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2219,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2233,
                  "src": "12245:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2217,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "12245:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2218,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "12245:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2221,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2233,
                  "src": "12263:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2220,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12263:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12244:37:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 2223,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12290:0:11"
            },
            "scope": 3023,
            "src": "12216:139:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2454,
              "nodeType": "Block",
              "src": "12649:1836:11",
              "statements": [
                {
                  "assignments": [
                    2243
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2243,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12659:12:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2242,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12659:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2251,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2245,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2235,
                        "src": "12681:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2246,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "12688:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12688:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2248,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2237,
                        "src": "12700:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2249,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2239,
                        "src": "12708:5:11",
                        "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"
                        }
                      ],
                      "id": 2244,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2162,
                      "src": "12674:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) view returns (bytes32)"
                      }
                    },
                    "id": 2250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12674:40:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12659:55:11"
                },
                {
                  "assignments": [
                    2253
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2253,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12724:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2252,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "12724:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2260,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2254,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "12735:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 2257,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2255,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "12746:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12746:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "12735:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 2259,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2258,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2243,
                      "src": "12758:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12735:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12724:39:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2262,
                          "name": "bid",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2253,
                          "src": "12785:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12777:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12777:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2264,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12793:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12777:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2267,
                  "nodeType": "IfStatement",
                  "src": "12773:28:11",
                  "trueBody": {
                    "id": 2266,
                    "nodeType": "Throw",
                    "src": "12796:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2277,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2268,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "12812:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2272,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2269,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "12823:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2270,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12823:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12812:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2273,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2271,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2243,
                        "src": "12835:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12812:28:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2275,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12848:1:11",
                          "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": 2274,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "12843:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12843:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "12812:38:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2278,
                  "nodeType": "ExpressionStatement",
                  "src": "12812:38:11"
                },
                {
                  "assignments": [
                    2280
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2280,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12860:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2279,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "12860:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2284,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2281,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "12870:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2283,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2282,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2235,
                      "src": "12879:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12870:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12860:25:11"
                },
                {
                  "assignments": [
                    2286
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2286,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12895:10:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2285,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12895:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2293,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2288,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2237,
                        "src": "12912:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2289,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2253,
                            "src": "12920:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1417,
                          "src": "12920:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 2291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12920:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2287,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1909,
                      "src": "12908:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (uint256)"
                      }
                    },
                    "id": 2292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12908:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12895:37:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2297,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2286,
                        "src": "12957:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 2298,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12964:4:11",
                        "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": 2294,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2253,
                        "src": "12942:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2296,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1541,
                      "src": "12942:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 2299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12942:27:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2300,
                  "nodeType": "ExpressionStatement",
                  "src": "12942:27:11"
                },
                {
                  "assignments": [
                    2301
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2301,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12980:16:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2305,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2303,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2235,
                        "src": "13005:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2302,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1748,
                      "src": "12999:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2304,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12999:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12980:31:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2306,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2301,
                      "src": "13025:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2307,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "13041:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2308,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13041:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "13025:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 2328,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2325,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2301,
                        "src": "13223:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2326,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1617,
                          "src": "13239:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 2327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "13239:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "13223:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2331,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2286,
                            "src": "13321:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2332,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1629,
                            "src": "13329:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13321:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2334,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2253,
                                "src": "13341:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2335,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1411,
                              "src": "13341:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2336,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13341:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2340,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2337,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2280,
                                "src": "13362:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2338,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1685,
                              "src": "13362:18:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 2339,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1623,
                              "src": "13383:12:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "13362:33:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13341:54:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "13321:74:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2361,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2358,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2286,
                            "src": "13557:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2359,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2280,
                              "src": "13565:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2360,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1689,
                            "src": "13565:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13557:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2409,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2286,
                              "src": "14139:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2410,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2280,
                                "src": "14147:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2411,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1687,
                              "src": "14147:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "14139:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 2448,
                            "nodeType": "Block",
                            "src": "14340:139:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 2437,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14410:3:11",
                                      "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": 2434,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2253,
                                      "src": "14396:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 2436,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1577,
                                    "src": "14396:13:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 2438,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14396:18:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2439,
                                "nodeType": "ExpressionStatement",
                                "src": "14396:18:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 2441,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2235,
                                      "src": "14440:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2442,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3422,
                                        "src": "14447:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 2443,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "14447:10:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 2444,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2286,
                                      "src": "14459:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 2445,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14466:1:11",
                                      "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",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 2440,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1655,
                                    "src": "14428:11:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 2446,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14428:40:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2447,
                                "nodeType": "ExpressionStatement",
                                "src": "14428:40:11"
                              }
                            ]
                          },
                          "id": 2449,
                          "nodeType": "IfStatement",
                          "src": "14135:344:11",
                          "trueBody": {
                            "id": 2433,
                            "nodeType": "Block",
                            "src": "14156:178:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2417,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2413,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2280,
                                      "src": "14222:1:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                        "typeString": "struct Registrar.entry storage pointer"
                                      }
                                    },
                                    "id": 2415,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1687,
                                    "src": "14222:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 2416,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2286,
                                    "src": "14232:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "14222:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 2418,
                                "nodeType": "ExpressionStatement",
                                "src": "14222:15:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 2422,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14265:3:11",
                                      "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": 2419,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2253,
                                      "src": "14251:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 2421,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1577,
                                    "src": "14251:13:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 2423,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14251:18:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2424,
                                "nodeType": "ExpressionStatement",
                                "src": "14251:18:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 2426,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2235,
                                      "src": "14295:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2427,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3422,
                                        "src": "14302:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 2428,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "14302:10:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 2429,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2286,
                                      "src": "14314:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 2430,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14321:1:11",
                                      "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",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 2425,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1655,
                                    "src": "14283:11:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 2431,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14283:40:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2432,
                                "nodeType": "ExpressionStatement",
                                "src": "14283:40:11"
                              }
                            ]
                          }
                        },
                        "id": 2450,
                        "nodeType": "IfStatement",
                        "src": "13553:926:11",
                        "trueBody": {
                          "id": 2408,
                          "nodeType": "Block",
                          "src": "13579:550:11",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 2367,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2363,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2280,
                                        "src": "13681:1:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                          "typeString": "struct Registrar.entry storage pointer"
                                        }
                                      },
                                      "id": 2364,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1683,
                                      "src": "13681:6:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 2362,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "13673:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 2365,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13673:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2366,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13692:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13673:20:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 2380,
                              "nodeType": "IfStatement",
                              "src": "13669:134:11",
                              "trueBody": {
                                "id": 2379,
                                "nodeType": "Block",
                                "src": "13695:108:11",
                                "statements": [
                                  {
                                    "assignments": [
                                      2369
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 2369,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 2455,
                                        "src": "13713:19:11",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$1596",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 2368,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 1596,
                                          "src": "13713:4:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$1596",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 2372,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2370,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2280,
                                        "src": "13735:1:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                          "typeString": "struct Registrar.entry storage pointer"
                                        }
                                      },
                                      "id": 2371,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1683,
                                      "src": "13735:6:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13713:28:11"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 2376,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "13784:3:11",
                                          "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": 2373,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2369,
                                          "src": "13759:14:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$1596",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 2375,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 1577,
                                        "src": "13759:24:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 2377,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "13759:29:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 2378,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13759:29:11"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2386,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2381,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "13940:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2383,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1687,
                                  "src": "13940:7:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2384,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "13950:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2385,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1689,
                                  "src": "13950:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13940:22:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2387,
                              "nodeType": "ExpressionStatement",
                              "src": "13940:22:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2388,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "14018:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2390,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1689,
                                  "src": "14018:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 2391,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2286,
                                  "src": "14033:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14018:20:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2393,
                              "nodeType": "ExpressionStatement",
                              "src": "14018:20:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2394,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "14052:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2396,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1683,
                                  "src": "14052:6:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 2397,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2253,
                                  "src": "14061:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "14052:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2399,
                              "nodeType": "ExpressionStatement",
                              "src": "14052:12:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2401,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2235,
                                    "src": "14090:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2402,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3422,
                                      "src": "14097:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 2403,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "14097:10:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 2404,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2286,
                                    "src": "14109:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 2405,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14116:1:11",
                                    "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",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 2400,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1655,
                                  "src": "14078:11:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 2406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14078:40:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 2407,
                              "nodeType": "ExpressionStatement",
                              "src": "14078:40:11"
                            }
                          ]
                        }
                      },
                      "id": 2451,
                      "nodeType": "IfStatement",
                      "src": "13317:1162:11",
                      "trueBody": {
                        "id": 2357,
                        "nodeType": "Block",
                        "src": "13397:150:11",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 2346,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13478:3:11",
                                  "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": 2343,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2253,
                                  "src": "13464:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 2345,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1577,
                                "src": "13464:13:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 2347,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13464:18:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2348,
                            "nodeType": "ExpressionStatement",
                            "src": "13464:18:11"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2350,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2235,
                                  "src": "13508:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2351,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3422,
                                    "src": "13515:3:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2352,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13515:10:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 2353,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2286,
                                  "src": "13527:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2354,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13534:1:11",
                                  "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",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2349,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1655,
                                "src": "13496:11:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 2355,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13496:40:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2356,
                            "nodeType": "ExpressionStatement",
                            "src": "13496:40:11"
                          }
                        ]
                      }
                    },
                    "id": 2452,
                    "nodeType": "IfStatement",
                    "src": "13219:1260:11",
                    "trueBody": {
                      "id": 2330,
                      "nodeType": "Block",
                      "src": "13252:59:11",
                      "statements": [
                        {
                          "id": 2329,
                          "nodeType": "Throw",
                          "src": "13295:5:11"
                        }
                      ]
                    }
                  },
                  "id": 2453,
                  "nodeType": "IfStatement",
                  "src": "13021:1458:11",
                  "trueBody": {
                    "id": 2324,
                    "nodeType": "Block",
                    "src": "13053:160:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 2313,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13146:1:11",
                              "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": 2310,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2253,
                              "src": "13132:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1577,
                            "src": "13132:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 2314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13132:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2315,
                        "nodeType": "ExpressionStatement",
                        "src": "13132:16:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2317,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2235,
                              "src": "13174:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2318,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "13181:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2319,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "13181:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2320,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2286,
                              "src": "13193:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 2321,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13200:1:11",
                              "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",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 2316,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1655,
                            "src": "13162:11:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 2322,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13162:40:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2323,
                        "nodeType": "ExpressionStatement",
                        "src": "13162:40:11"
                      }
                    ]
                  }
                }
              ]
            },
            "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": 2455,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2235,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12606:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2234,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12606:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2237,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12621:11:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2236,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12621:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2239,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12634:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12634:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12605:43:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2241,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12649:0:11"
            },
            "scope": 3023,
            "src": "12587:1898:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2517,
              "nodeType": "Block",
              "src": "14649:783:11",
              "statements": [
                {
                  "assignments": [
                    2463
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2463,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2518,
                      "src": "14659:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2462,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "14659:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2469,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2464,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "14670:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 2466,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2465,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2457,
                        "src": "14681:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "14670:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 2468,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2467,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2459,
                      "src": "14689:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "14670:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14659:35:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 2474,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2471,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2463,
                            "src": "15126:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 2470,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "15118:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2472,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15118:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15134:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "15118:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2483,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2475,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "15151:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2480,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2476,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2463,
                                "src": "15157:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2477,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1411,
                              "src": "15157:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2478,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15157:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2479,
                            "name": "totalAuctionLength",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1620,
                            "src": "15178:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "15157:39:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 2481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15199:7:11",
                          "subdenomination": "weeks",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1209600_by_1",
                            "typeString": "int_const 1209600"
                          },
                          "value": "2"
                        },
                        "src": "15157:49:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15151:55:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "15118:88:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2486,
                  "nodeType": "IfStatement",
                  "src": "15114:99:11",
                  "trueBody": {
                    "id": 2485,
                    "nodeType": "Throw",
                    "src": "15208:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2490,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "15303:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15303:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2487,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "15290:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1496,
                      "src": "15290:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15290:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2493,
                  "nodeType": "ExpressionStatement",
                  "src": "15290:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 2497,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15338:1:11",
                        "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": 2494,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "15324:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1577,
                      "src": "15324:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15324:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2499,
                  "nodeType": "ExpressionStatement",
                  "src": "15324:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2500,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "15350:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2501,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2457,
                          "src": "15361:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15350:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2504,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2502,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2459,
                        "src": "15369:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "15350:24:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15382:1:11",
                          "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": 2505,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "15377:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2507,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15377:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "15350:34:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2509,
                  "nodeType": "ExpressionStatement",
                  "src": "15350:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2511,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2459,
                        "src": "15406:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2512,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2457,
                        "src": "15412:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15420:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 2514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15423:1:11",
                        "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": 2510,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1655,
                      "src": "15394:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 2515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15394:31:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2516,
                  "nodeType": "ExpressionStatement",
                  "src": "15394:31:11"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 2518,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2457,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 2518,
                  "src": "14619:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14619:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2459,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 2518,
                  "src": "14635:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2458,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14635:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14618:30:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2461,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14649:0:11"
            },
            "scope": 3023,
            "src": "14600:832:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2572,
              "nodeType": "Block",
              "src": "15649:344:11",
              "statements": [
                {
                  "assignments": [
                    2527
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2527,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2573,
                      "src": "15659:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2526,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "15659:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2531,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2528,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "15669:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2530,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2529,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2520,
                      "src": "15678:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15669:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15659:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2532,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2527,
                        "src": "15783:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2534,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "15783:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2536,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2527,
                            "src": "15798:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2537,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1687,
                          "src": "15798:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2538,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1629,
                          "src": "15807:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2535,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1891,
                        "src": "15794:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) view returns (uint256)"
                        }
                      },
                      "id": 2539,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15794:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15783:33:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2541,
                  "nodeType": "ExpressionStatement",
                  "src": "15783:33:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2547,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15844:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2548,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "15844:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 2549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15853:4:11",
                        "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": 2542,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15826:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2545,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "15826:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1541,
                      "src": "15826:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 2550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15826:32:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2551,
                  "nodeType": "ExpressionStatement",
                  "src": "15826:32:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2553,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2520,
                        "src": "15888:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2554,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2527,
                              "src": "15895:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2555,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "15895:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "15895:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 2557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15895:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2552,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "15869:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15869:41:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2559,
                  "nodeType": "ExpressionStatement",
                  "src": "15869:41:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2561,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2520,
                        "src": "15935:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2562,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2527,
                              "src": "15942:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2563,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "15942:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "15942:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 2565,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15942:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2566,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15958:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "15958:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2568,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15967:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "15967:18:11",
                        "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": 2560,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1665,
                      "src": "15920:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 2570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15920:66:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2571,
                  "nodeType": "ExpressionStatement",
                  "src": "15920:66:11"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 2573,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2523,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2520,
                    "src": "15642:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2522,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "15632:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15632:16:11"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2520,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "15617:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2519,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15617:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15616:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15649:0:11"
            },
            "scope": 3023,
            "src": "15592:401:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2607,
              "nodeType": "Block",
              "src": "16270:157:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2583,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2577,
                      "src": "16284:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16296:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16284:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2587,
                  "nodeType": "IfStatement",
                  "src": "16280:24:11",
                  "trueBody": {
                    "id": 2586,
                    "nodeType": "Throw",
                    "src": "16299:5:11"
                  }
                },
                {
                  "assignments": [
                    2589
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2589,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2608,
                      "src": "16315:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2588,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "16315:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2593,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2590,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "16325:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2592,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2591,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2575,
                      "src": "16334:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16325:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16315:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2599,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2577,
                        "src": "16366:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2594,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2589,
                          "src": "16350:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2597,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "16350:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1496,
                      "src": "16350:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16350:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2601,
                  "nodeType": "ExpressionStatement",
                  "src": "16350:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2603,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2575,
                        "src": "16404:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2604,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2577,
                        "src": "16411:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2602,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "16385:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2605,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16385:35:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2606,
                  "nodeType": "ExpressionStatement",
                  "src": "16385:35:11"
                }
              ]
            },
            "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": 2608,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2580,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2575,
                    "src": "16263:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2581,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2579,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "16253:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16253:16:11"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2575,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2608,
                  "src": "16220:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16220:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2577,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2608,
                  "src": "16235:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16235:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16219:33:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16270:0:11"
            },
            "scope": 3023,
            "src": "16202:225:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2680,
              "nodeType": "Block",
              "src": "16684:368:11",
              "statements": [
                {
                  "assignments": [
                    2617
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2617,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2681,
                      "src": "16694:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2616,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "16694:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2621,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2618,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "16704:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2620,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2619,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2610,
                      "src": "16713:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16704:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16694:25:11"
                },
                {
                  "assignments": [
                    2623
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2623,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 2681,
                      "src": "16729:17:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2622,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "16729:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2626,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 2624,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2617,
                      "src": "16749:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry storage pointer"
                      }
                    },
                    "id": 2625,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1683,
                    "src": "16749:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16729:26:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2641,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2627,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "16769:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2631,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2628,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2617,
                            "src": "16775:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2629,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "registrationDate",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1685,
                          "src": "16775:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2630,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16796:7:11",
                          "subdenomination": "years",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "1"
                        },
                        "src": "16775:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16769:34:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 2640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2635,
                            "name": "rootNode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1600,
                            "src": "16817:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2633,
                            "name": "ens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1598,
                            "src": "16807:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_AbstractENS_$3407",
                              "typeString": "contract AbstractENS"
                            }
                          },
                          "id": 2634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3336,
                          "src": "16807:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 2636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16807:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2638,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "16838:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 2637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16830:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16830:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "16807:36:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16769:74:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2643,
                  "nodeType": "IfStatement",
                  "src": "16765:85:11",
                  "trueBody": {
                    "id": 2642,
                    "nodeType": "Throw",
                    "src": "16845:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2644,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16861:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2646,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "16861:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16871:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16861:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2649,
                  "nodeType": "ExpressionStatement",
                  "src": "16861:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2650,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16882:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2652,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "16882:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16897:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16882:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2655,
                  "nodeType": "ExpressionStatement",
                  "src": "16882:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2656,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16908:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2658,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "16908:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16922:1:11",
                          "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": 2659,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "16917:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2661,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16917:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16908:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2663,
                  "nodeType": "ExpressionStatement",
                  "src": "16908:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2665,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2610,
                        "src": "16955:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2664,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2874,
                      "src": "16935:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16935:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2667,
                  "nodeType": "ExpressionStatement",
                  "src": "16935:26:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 2671,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16994:4:11",
                        "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": 2668,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2623,
                        "src": "16971:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2670,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1577,
                      "src": "16971:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16971:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2673,
                  "nodeType": "ExpressionStatement",
                  "src": "16971:28:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2675,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2610,
                        "src": "17022:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2676,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2617,
                          "src": "17029:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2677,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "17029:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2674,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1671,
                      "src": "17009:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17009:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2679,
                  "nodeType": "ExpressionStatement",
                  "src": "17009:28:11"
                }
              ]
            },
            "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": 2681,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2613,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2610,
                    "src": "16677:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2614,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2612,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "16667:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16667:16:11"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2610,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2681,
                  "src": "16652:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2609,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16652:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16651:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2615,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16684:0:11"
            },
            "scope": 3023,
            "src": "16631:421:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2792,
              "nodeType": "Block",
              "src": "17522:635:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2694,
                          "name": "unhashedName",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2683,
                          "src": "17543:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 2693,
                        "name": "strlen",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1994,
                        "src": "17536:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (string memory) view returns (uint256)"
                        }
                      },
                      "id": 2695,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17536:20:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "36",
                      "id": 2696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17559:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_6_by_1",
                        "typeString": "int_const 6"
                      },
                      "value": "6"
                    },
                    "src": "17536:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2699,
                  "nodeType": "IfStatement",
                  "src": "17532:35:11",
                  "trueBody": {
                    "id": 2698,
                    "nodeType": "Throw",
                    "src": "17562:5:11"
                  }
                },
                {
                  "assignments": [
                    2701
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2701,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2793,
                      "src": "17577:12:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2700,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17577:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2705,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2703,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "17597:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2702,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "17592:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2704,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17592:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17577:33:11"
                },
                {
                  "assignments": [
                    2707
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2707,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2793,
                      "src": "17621:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2706,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "17621:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2711,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2708,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "17631:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2710,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2709,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2701,
                      "src": "17640:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "17631:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17621:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2713,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2701,
                        "src": "17676:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2712,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2874,
                      "src": "17656:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17656:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2715,
                  "nodeType": "ExpressionStatement",
                  "src": "17656:25:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2717,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2707,
                            "src": "17704:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2718,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1683,
                          "src": "17704:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2716,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17696:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17696:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2720,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17715:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17696:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2762,
                  "nodeType": "IfStatement",
                  "src": "17692:310:11",
                  "trueBody": {
                    "id": 2761,
                    "nodeType": "Block",
                    "src": "17718:284:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2722,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2707,
                              "src": "17833:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2724,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1687,
                            "src": "17833:7:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2726,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "17847:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 2727,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1687,
                                "src": "17847:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2728,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1629,
                                "src": "17856:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2725,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1891,
                              "src": "17843:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) view returns (uint256)"
                              }
                            },
                            "id": 2729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17843:22:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17833:32:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2731,
                        "nodeType": "ExpressionStatement",
                        "src": "17833:32:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2740,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2737,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "17897:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 2738,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1687,
                                "src": "17897:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 2739,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "17905:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "17897:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2741,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "17908:5:11",
                              "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": 2732,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17879:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2735,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17879:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2736,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1541,
                            "src": "17879:17:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 2742,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17879:35:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2743,
                        "nodeType": "ExpressionStatement",
                        "src": "17879:35:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2749,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "17944:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2750,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "17944:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2744,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17928:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2747,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17928:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2748,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1496,
                            "src": "17928:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address) external"
                            }
                          },
                          "id": 2751,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17928:27:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2752,
                        "nodeType": "ExpressionStatement",
                        "src": "17928:27:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 2758,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "17986:4:11",
                              "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": 2753,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17969:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2756,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17969:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2757,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1577,
                            "src": "17969:16:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 2759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17969:22:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2760,
                        "nodeType": "ExpressionStatement",
                        "src": "17969:22:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2764,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2701,
                        "src": "18028:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2765,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "18034:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2766,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "18048:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2767,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "18048:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2768,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "18057:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2769,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "18057:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2763,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1681,
                      "src": "18012:15:11",
                      "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": 2770,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18012:64:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2771,
                  "nodeType": "ExpressionStatement",
                  "src": "18012:64:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2772,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18087:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2774,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "18087:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18097:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18087:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2777,
                  "nodeType": "ExpressionStatement",
                  "src": "18087:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2778,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18108:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2780,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "18108:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18123:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18108:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2783,
                  "nodeType": "ExpressionStatement",
                  "src": "18108:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2784,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18134:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2786,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "18134:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2788,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18148:1:11",
                          "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": 2787,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "18143:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18143:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "18134:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2791,
                  "nodeType": "ExpressionStatement",
                  "src": "18134:16:11"
                }
              ]
            },
            "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": 2793,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2687,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "17495:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2686,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "17490:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17490:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 2689,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1617,
                      "src": "17510:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                        "typeString": "type(enum Registrar.Mode)"
                      }
                    },
                    "id": 2690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "17510:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  }
                ],
                "id": 2691,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2685,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1763,
                  "src": "17482:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$1617_$",
                    "typeString": "modifier (bytes32,enum Registrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "17482:39:11"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2683,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 2793,
                  "src": "17461:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2682,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "17461:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17460:21:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2692,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17522:0:11"
            },
            "scope": 3023,
            "src": "17437:720:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2827,
              "nodeType": "Block",
              "src": "18813:180:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2799,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2796,
                        "src": "18827:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18827:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2801,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18844:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18827:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2804,
                  "nodeType": "IfStatement",
                  "src": "18823:29:11",
                  "trueBody": {
                    "id": 2803,
                    "nodeType": "Throw",
                    "src": "18847:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2806,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2796,
                            "src": "18872:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2811,
                          "indexExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2810,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2807,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2796,
                                "src": "18879:6:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2808,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "18879:13:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 2809,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18895:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "18879:17:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18872:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2805,
                        "name": "state",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1748,
                        "src": "18866:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                          "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                        }
                      },
                      "id": 2812,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18866:32:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2813,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "18902:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18902:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "18866:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2817,
                  "nodeType": "IfStatement",
                  "src": "18862:57:11",
                  "trueBody": {
                    "id": 2816,
                    "nodeType": "Throw",
                    "src": "18914:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2819,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2796,
                            "src": "18950:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "18950:13:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2821,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18966:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "18950:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2823,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2796,
                        "src": "18969:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2824,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "18977:8:11",
                        "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": 2818,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2933,
                      "src": "18930:19:11",
                      "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": 2825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18930:56:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2826,
                  "nodeType": "ExpressionStatement",
                  "src": "18930:56:11"
                }
              ]
            },
            "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       [sha3('foo'), sha3('bar')].",
            "id": 2828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2796,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2828,
                  "src": "18795:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2794,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "18795:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2795,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "18795:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18794:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2798,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18813:0:11"
            },
            "scope": 3023,
            "src": "18776:217:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2873,
              "nodeType": "Block",
              "src": "19052:253:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2835,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "19076:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2833,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "19066:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3336,
                        "src": "19066:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2836,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19066:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2838,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "19097:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "19089:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2839,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19089:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "19066:36:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2872,
                  "nodeType": "IfStatement",
                  "src": "19062:237:11",
                  "trueBody": {
                    "id": 2871,
                    "nodeType": "Block",
                    "src": "19104:195:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2844,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1600,
                              "src": "19138:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2845,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2830,
                              "src": "19148:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2847,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3473,
                                  "src": "19163:4:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Registrar_$3023",
                                    "typeString": "contract Registrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_Registrar_$3023",
                                    "typeString": "contract Registrar"
                                  }
                                ],
                                "id": 2846,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "19155:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2848,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19155:13:11",
                              "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": 2841,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19118:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2843,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3366,
                            "src": "19118:19:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,bytes32,address) external"
                            }
                          },
                          "id": 2849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19118:51:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2850,
                        "nodeType": "ExpressionStatement",
                        "src": "19118:51:11"
                      },
                      {
                        "assignments": [
                          2851
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2851,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 2874,
                            "src": "19183:8:11",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": null,
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2856,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2853,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1600,
                              "src": "19199:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2854,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2830,
                              "src": "19209:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2852,
                            "name": "sha3",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3432,
                            "src": "19194:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 2855,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19194:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "19183:32:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2860,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2851,
                              "src": "19245:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2861,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19251:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2857,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19229:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2859,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3373,
                            "src": "19229:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2862,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19229:24:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2863,
                        "nodeType": "ExpressionStatement",
                        "src": "19229:24:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2867,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2851,
                              "src": "19280:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2868,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19286:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2864,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19267:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2866,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3357,
                            "src": "19267:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19267:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2870,
                        "nodeType": "ExpressionStatement",
                        "src": "19267:21:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 2874,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2830,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 2874,
                  "src": "19028:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2829,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19028:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19027:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2832,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19052:0:11"
            },
            "scope": 3023,
            "src": "18999:306:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2932,
              "nodeType": "Block",
              "src": "19391:404:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2887,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19459:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2888,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2879,
                          "src": "19465:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2890,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2889,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2876,
                          "src": "19472:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "19465:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2892,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "19486:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 2891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "19478:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2893,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19478:13:11",
                        "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": 2884,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19439:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2886,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3366,
                      "src": "19439:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address) external"
                      }
                    },
                    "id": 2894,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19439:53:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2895,
                  "nodeType": "ExpressionStatement",
                  "src": "19439:53:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2903,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2896,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2881,
                      "src": "19502:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2898,
                          "name": "node",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2881,
                          "src": "19514:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2899,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2879,
                            "src": "19520:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2901,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2900,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2876,
                            "src": "19527:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "19520:11:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2897,
                        "name": "sha3",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3432,
                        "src": "19509:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 2902,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19509:23:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "19502:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2904,
                  "nodeType": "ExpressionStatement",
                  "src": "19502:30:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2905,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2876,
                      "src": "19599:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2906,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19605:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19599:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2917,
                  "nodeType": "IfStatement",
                  "src": "19595:80:11",
                  "trueBody": {
                    "id": 2916,
                    "nodeType": "Block",
                    "src": "19608:67:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2911,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2909,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2876,
                                "src": "19642:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 2910,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "19648:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "19642:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2912,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2879,
                              "src": "19651:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2913,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2881,
                              "src": "19659:4:11",
                              "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": 2908,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2933,
                            "src": "19622:19:11",
                            "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": 2914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19622:42:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2915,
                        "nodeType": "ExpressionStatement",
                        "src": "19622:42:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2921,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19749:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19755:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2918,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19733:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2920,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3373,
                      "src": "19733:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2923,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19733:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2924,
                  "nodeType": "ExpressionStatement",
                  "src": "19733:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2928,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19780:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19786:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2925,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19767:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2927,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3357,
                      "src": "19767:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19767:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2931,
                  "nodeType": "ExpressionStatement",
                  "src": "19767:21:11"
                }
              ]
            },
            "documentation": null,
            "id": 2933,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2876,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19340:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2875,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "19340:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2879,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19350:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2877,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "19350:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2878,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "19350:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2881,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19368:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2880,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19368:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19339:42:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2883,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19391:0:11"
            },
            "scope": 3023,
            "src": "19311:484:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3005,
              "nodeType": "Block",
              "src": "20088:486:11",
              "statements": [
                {
                  "assignments": [
                    2941
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2941,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 3006,
                      "src": "20098:13:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2946,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2944,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "20124:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2942,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "20114:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3336,
                      "src": "20114:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 2945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20114:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20098:35:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2947,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2941,
                      "src": "20147:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2949,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "20168:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2948,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "20160:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2950,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20160:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "20147:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2953,
                  "nodeType": "IfStatement",
                  "src": "20143:37:11",
                  "trueBody": {
                    "id": 2952,
                    "nodeType": "Throw",
                    "src": "20175:5:11"
                  }
                },
                {
                  "assignments": [
                    2955
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2955,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 3006,
                      "src": "20219:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2954,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "20219:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2959,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2956,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "20229:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2958,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2957,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2935,
                      "src": "20238:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "20229:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20219:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2965,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2941,
                        "src": "20274:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2960,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20254:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2963,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "20254:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2964,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1508,
                      "src": "20254:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20254:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2967,
                  "nodeType": "ExpressionStatement",
                  "src": "20254:30:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2972,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2935,
                        "src": "20397:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2973,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20404:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2974,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "20404:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2975,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20412:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2976,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "20412:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2969,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2941,
                            "src": "20362:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 2968,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3023,
                          "src": "20352:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$3023_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 2970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20352:20:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$3023",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 2971,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3022,
                      "src": "20352:44:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$1596_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 2977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20352:79:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2978,
                  "nodeType": "ExpressionStatement",
                  "src": "20352:79:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2979,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20472:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2981,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "20472:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "20486:1:11",
                          "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": 2982,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "20481:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20481:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "20472:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2986,
                  "nodeType": "ExpressionStatement",
                  "src": "20472:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2987,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20498:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2989,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1685,
                      "src": "20498:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20519:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20498:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2992,
                  "nodeType": "ExpressionStatement",
                  "src": "20498:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2993,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20530:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2995,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "20530:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20540:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20530:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2998,
                  "nodeType": "ExpressionStatement",
                  "src": "20530:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2999,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20551:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 3001,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "20551:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3002,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20566:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20551:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3004,
                  "nodeType": "ExpressionStatement",
                  "src": "20551:16:11"
                }
              ]
            },
            "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": 3006,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2938,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2935,
                    "src": "20081:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2939,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2937,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "20071:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "20071:16:11"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2936,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2935,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3006,
                  "src": "20056:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2934,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20056:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20055:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2940,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20088:0:11"
            },
            "scope": 3023,
            "src": "20028:546:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3021,
              "nodeType": "Block",
              "src": "21051:82:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3015,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3008,
                    "src": "21061:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3016,
                  "nodeType": "ExpressionStatement",
                  "src": "21061:4:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3017,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3010,
                    "src": "21067:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 3018,
                  "nodeType": "ExpressionStatement",
                  "src": "21067:4:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3019,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3012,
                    "src": "21073:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3020,
                  "nodeType": "ExpressionStatement",
                  "src": "21073:16:11"
                }
              ]
            },
            "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": 3022,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3008,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21003:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3007,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21003:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3010,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21017:9:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3009,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1596,
                    "src": "21017:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3012,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21028:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3011,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "21028:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21002:48:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 3014,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21051:0:11"
            },
            "scope": 3023,
            "src": "20970:163:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3024,
        "src": "2898:18238:11"
      }
    ],
    "src": "0:21137:11"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2020-01-30T18:28:02.813Z"
}