{
  "contractName": "MakerDAOOracle",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "manualPrice",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "makerDAO",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "manualOverride",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_newMakerDAO",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_oldMakerDAO",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_now",
          "type": "uint256"
        }
      ],
      "name": "LogChangeMakerDAO",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_oldPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_newPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_time",
          "type": "uint256"
        }
      ],
      "name": "LogSetManualPrice",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_override",
          "type": "bool"
        },
        {
          "indexed": false,
          "name": "_time",
          "type": "uint256"
        }
      ],
      "name": "LogSetManualOverride",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_makerDAO",
          "type": "address"
        }
      ],
      "name": "changeMakerDAO",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCurrencyAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCurrencySymbol",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCurrencyDenominated",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getPrice",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_price",
          "type": "uint256"
        }
      ],
      "name": "setManualPrice",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_override",
          "type": "bool"
        }
      ],
      "name": "setManualOverride",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260018054600160a060020a031990811673729d19f657bd0614b4985cf1d82531c67569197b1790915560008054909116331790556106e1806100476000396000f3006080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633596750181146100c95780635dfc09a4146100e5578063715018a61461010c5780638da5cb5b1461012157806398d5fdca146101525780639b81505714610167578063a2c9d63014610188578063abd496461461019d578063bae6d62b146101b2578063bfe0c27e146101db578063d2654219146101f0578063d7a7186814610205578063f2fde38b1461021d575b600080fd5b3480156100d557600080fd5b506100e3600435151561023e565b005b3480156100f157600080fd5b506100fa6102d0565b60408051918252519081900360200190f35b34801561011857600080fd5b506100e36102f4565b34801561012d57600080fd5b50610136610360565b60408051600160a060020a039092168252519081900360200190f35b34801561015e57600080fd5b506100fa61036f565b34801561017357600080fd5b506100e3600160a060020a03600435166104c7565b34801561019457600080fd5b506100fa610559565b3480156101a957600080fd5b5061013661055f565b3480156101be57600080fd5b506101c761056e565b604080519115158252519081900360200190f35b3480156101e757600080fd5b5061013661058f565b3480156101fc57600080fd5b506100fa610594565b34801561021157600080fd5b506100e36004356105b8565b34801561022957600080fd5b506100e3600160a060020a0360043516610615565b600054600160a060020a0316331461025557600080fd5b6001805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556040805191825242602083015280517f14a38f9bb5326b2ea5d19c58d6bf35c0fb16bec9b9f593b1630a13f85c0044a19281900390910190a150565b7f455448000000000000000000000000000000000000000000000000000000000090565b600054600160a060020a0316331461030b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b6000806000600160149054906101000a900460ff16156103935760025492506104c2565b600154604080517f59e02dd70000000000000000000000000000000000000000000000000000000081528151600160a060020a03909316926359e02dd7926004808401939192918290030181600087803b1580156103f057600080fd5b505af1158015610404573d6000803e3d6000fd5b505050506040513d604081101561041a57600080fd5b50805160209091015190925090508015156104bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d616b657244414f204f7261636c652072657475726e696e6720696e76616c6960448201527f642076616c756500000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b90915081905b505090565b600054600160a060020a031633146104de57600080fd5b60015460408051600160a060020a03808516825290921660208301524282820152517f7543e286f28e8144103ba5ca383a4e261117d34bd6a06d55a86b65dfcf3215129181900360600190a16001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025481565b600154600160a060020a031681565b60015474010000000000000000000000000000000000000000900460ff1681565b600090565b7f555344000000000000000000000000000000000000000000000000000000000090565b600054600160a060020a031633146105cf57600080fd5b60025460408051918252602082018390524282820152517f75a35a9f0ffcd3bff850640b21cf7a3e9d887bb934d427afb6461837a20e384f9181900360600190a1600255565b600054600160a060020a0316331461062c57600080fd5b61063581610638565b50565b600160a060020a038116151561064d57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582010d270a3ca1ba581e44f856e7f7c8a12c20e830b2253adb32075b63151671fed0029",
  "deployedBytecode": "0x6080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633596750181146100c95780635dfc09a4146100e5578063715018a61461010c5780638da5cb5b1461012157806398d5fdca146101525780639b81505714610167578063a2c9d63014610188578063abd496461461019d578063bae6d62b146101b2578063bfe0c27e146101db578063d2654219146101f0578063d7a7186814610205578063f2fde38b1461021d575b600080fd5b3480156100d557600080fd5b506100e3600435151561023e565b005b3480156100f157600080fd5b506100fa6102d0565b60408051918252519081900360200190f35b34801561011857600080fd5b506100e36102f4565b34801561012d57600080fd5b50610136610360565b60408051600160a060020a039092168252519081900360200190f35b34801561015e57600080fd5b506100fa61036f565b34801561017357600080fd5b506100e3600160a060020a03600435166104c7565b34801561019457600080fd5b506100fa610559565b3480156101a957600080fd5b5061013661055f565b3480156101be57600080fd5b506101c761056e565b604080519115158252519081900360200190f35b3480156101e757600080fd5b5061013661058f565b3480156101fc57600080fd5b506100fa610594565b34801561021157600080fd5b506100e36004356105b8565b34801561022957600080fd5b506100e3600160a060020a0360043516610615565b600054600160a060020a0316331461025557600080fd5b6001805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556040805191825242602083015280517f14a38f9bb5326b2ea5d19c58d6bf35c0fb16bec9b9f593b1630a13f85c0044a19281900390910190a150565b7f455448000000000000000000000000000000000000000000000000000000000090565b600054600160a060020a0316331461030b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b6000806000600160149054906101000a900460ff16156103935760025492506104c2565b600154604080517f59e02dd70000000000000000000000000000000000000000000000000000000081528151600160a060020a03909316926359e02dd7926004808401939192918290030181600087803b1580156103f057600080fd5b505af1158015610404573d6000803e3d6000fd5b505050506040513d604081101561041a57600080fd5b50805160209091015190925090508015156104bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d616b657244414f204f7261636c652072657475726e696e6720696e76616c6960448201527f642076616c756500000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b90915081905b505090565b600054600160a060020a031633146104de57600080fd5b60015460408051600160a060020a03808516825290921660208301524282820152517f7543e286f28e8144103ba5ca383a4e261117d34bd6a06d55a86b65dfcf3215129181900360600190a16001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025481565b600154600160a060020a031681565b60015474010000000000000000000000000000000000000000900460ff1681565b600090565b7f555344000000000000000000000000000000000000000000000000000000000090565b600054600160a060020a031633146105cf57600080fd5b60025460408051918252602082018390524282820152517f75a35a9f0ffcd3bff850640b21cf7a3e9d887bb934d427afb6461837a20e384f9181900360600190a1600255565b600054600160a060020a0316331461062c57600080fd5b61063581610638565b50565b600160a060020a038116151561064d57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582010d270a3ca1ba581e44f856e7f7c8a12c20e830b2253adb32075b63151671fed0029",
  "sourceMap": "164:2095:55:-;;;215:68;;;-1:-1:-1;;;;;;215:68:55;;;241:42;215:68;;;;;567:18:64;;;;;575:10;567:18;;;164:2095:55;;;;;;",
  "deployedSourceMap": "164:2095:55:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2102:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2102:154:55;;;;;;;;;1006:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1006:98:55;;;;;;;;;;;;;;;;;;;;827:111:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:64;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:64;;;;;;;;-1:-1:-1;;;;;238:20:64;;;;;;;;;;;;;;1349:295:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1349:295:55;;;;589:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;589:155:55;-1:-1:-1;;;;;589:155:55;;;;;323:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;323:26:55;;;;215:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;215:68:55;;;;290:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;290:26:55;;;;;;;;;;;;;;;;;;;;;;828:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;828:95:55;;;;1169:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1169:103:55;;;;1792:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1792:152:55;;;;;1100:103:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1100:103:64;-1:-1:-1;;;;;1100:103:64;;;;;2102:154:55;719:5:64;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;2172:14:55;:26;;-1:-1:-1;;2172:26:55;;;;;;;;;;;;;;;2213:36;;;;;;2245:3;2213:36;;;;;;;;;;;;;;;;2102:154;:::o;1006:98::-;1083:14;1006:98;:::o;827:111:64:-;719:5;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;903:5;;;884:25;;-1:-1:-1;;;;;903:5:64;;;;884:25;;;931:1;915:18;;-1:-1:-1;;915:18:64;;;827:111::o;238:20::-;;;-1:-1:-1;;;;;238:20:64;;:::o;1349:295:55:-;1391:7;1483:13;1498:10;1414:14;;;;;;;;;;;1410:63;;;1451:11;;1444:18;;;;1410:63;1523:8;;1512:27;;;;;;;;-1:-1:-1;;;;;1523:8:55;;;;1512:25;;:27;;;;;;;;;;;;;1523:8;;1512:27;;;5:2:-1;;;;30:1;27;20:12;5:2;1512:27:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:27:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1512:27:55;;;;;;;;;-1:-1:-1;1512:27:55;-1:-1:-1;1549:57:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:5;;-1:-1:-1;1631:5:55;;1349:295;;;;:::o;589:155::-;719:5:64;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;693:8:55;;664:43;;;-1:-1:-1;;;;;664:43:55;;;;;693:8;;;664:43;;;;703:3;664:43;;;;;;;;;;;;;;717:8;:20;;-1:-1:-1;;717:20:55;-1:-1:-1;;;;;717:20:55;;;;;;;;;;589:155::o;323:26::-;;;;:::o;215:68::-;;;-1:-1:-1;;;;;215:68:55;;:::o;290:26::-;;;;;;;;;:::o;828:95::-;880:7;828:95;:::o;1169:103::-;1251:14;1169:103;:::o;1792:152::-;719:5:64;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;1882:11:55;;1864:43;;;;;;;;;;;;1903:3;1864:43;;;;;;;;;;;;;;1917:11;:20;1792:152::o;1100:103:64:-;719:5;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;-1:-1:-1;;;;;1408:23:64;;;;1400:32;;;;;;1464:5;;;1443:38;;-1:-1:-1;;;;;1443:38:64;;;;1464:5;;;1443:38;;;1487:5;:17;;-1:-1:-1;;1487:17:64;-1:-1:-1;;;;;1487:17:64;;;;;;;;;;1338:171::o",
  "source": "pragma solidity ^0.4.24;\n\nimport '../interfaces/IOracle.sol';\nimport '../external/Medianizer.sol';\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract MakerDAOOracle is IOracle, Ownable {\n\n    address public makerDAO = 0x729D19f657BD0614b4985Cf1D82531c67569197B;\n\n    bool public manualOverride;\n\n    uint256 public manualPrice;\n\n    event LogChangeMakerDAO(address _newMakerDAO, address _oldMakerDAO, uint256 _now);\n    event LogSetManualPrice(uint256 _oldPrice, uint256 _newPrice, uint256 _time);\n    event LogSetManualOverride(bool _override, uint256 _time);\n\n    function changeMakerDAO(address _makerDAO) public onlyOwner {\n        emit LogChangeMakerDAO(_makerDAO, makerDAO, now);\n        makerDAO = _makerDAO;\n    }\n\n    /**\n    * @notice Returns address of oracle currency (0x0 for ETH)\n    */\n    function getCurrencyAddress() external view returns(address) {\n        return address(0);\n    }\n\n    /**\n    * @notice Returns symbol of oracle currency (0x0 for ETH)\n    */\n    function getCurrencySymbol() external view returns(bytes32) {\n        return bytes32(\"ETH\");\n    }\n\n    /**\n    * @notice Returns denomination of price\n    */\n    function getCurrencyDenominated() external view returns(bytes32) {\n        return bytes32(\"USD\");\n    }\n\n    /**\n    * @notice Returns price - should throw if not valid\n    */\n    function getPrice() external view returns(uint256) {\n        if (manualOverride) {\n            return manualPrice;\n        }\n        (bytes32 price, bool valid) = Medianizer(makerDAO).peek();\n        require(valid, \"MakerDAO Oracle returning invalid value\");\n        return uint256(price);\n    }\n\n    /**\n      * @notice Set a manual price. NA - this will only be used if manualOverride == true\n      * @param _price Price to set\n      */\n    function setManualPrice(uint256 _price) public onlyOwner {\n        emit LogSetManualPrice(manualPrice, _price, now);\n        manualPrice = _price;\n    }\n\n    /**\n      * @notice Determine whether manual price is used or not\n      * @param _override Whether to use the manual override price or not\n      */\n    function setManualOverride(bool _override) public onlyOwner {\n        manualOverride = _override;\n        emit LogSetManualOverride(_override, now);\n    }\n\n}\n",
  "sourcePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/oracles/MakerDAOOracle.sol",
  "ast": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/oracles/MakerDAOOracle.sol",
    "exportedSymbols": {
      "MakerDAOOracle": [
        19523
      ]
    },
    "id": 19524,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 19373,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:55"
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IOracle.sol",
        "file": "../interfaces/IOracle.sol",
        "id": 19374,
        "nodeType": "ImportDirective",
        "scope": 19524,
        "sourceUnit": 10001,
        "src": "26:35:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/external/Medianizer.sol",
        "file": "../external/Medianizer.sol",
        "id": 19375,
        "nodeType": "ImportDirective",
        "scope": 19524,
        "sourceUnit": 2912,
        "src": "62:36:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 19376,
        "nodeType": "ImportDirective",
        "scope": 19524,
        "sourceUnit": 22665,
        "src": "99:63:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 19377,
              "name": "IOracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10000,
              "src": "191:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IOracle_$10000",
                "typeString": "contract IOracle"
              }
            },
            "id": 19378,
            "nodeType": "InheritanceSpecifier",
            "src": "191:7:55"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 19379,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22664,
              "src": "200:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$22664",
                "typeString": "contract Ownable"
              }
            },
            "id": 19380,
            "nodeType": "InheritanceSpecifier",
            "src": "200:7:55"
          }
        ],
        "contractDependencies": [
          10000,
          22664
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 19523,
        "linearizedBaseContracts": [
          19523,
          22664,
          10000
        ],
        "name": "MakerDAOOracle",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 19383,
            "name": "makerDAO",
            "nodeType": "VariableDeclaration",
            "scope": 19523,
            "src": "215:68:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 19381,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "215:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307837323944313966363537424430363134623439383543663144383235333163363735363931393742",
              "id": 19382,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "241:42:55",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              },
              "value": "0x729D19f657BD0614b4985Cf1D82531c67569197B"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 19385,
            "name": "manualOverride",
            "nodeType": "VariableDeclaration",
            "scope": 19523,
            "src": "290:26:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 19384,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "290:4:55",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 19387,
            "name": "manualPrice",
            "nodeType": "VariableDeclaration",
            "scope": 19523,
            "src": "323:26:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 19386,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "323:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 19395,
            "name": "LogChangeMakerDAO",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 19394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19389,
                  "indexed": false,
                  "name": "_newMakerDAO",
                  "nodeType": "VariableDeclaration",
                  "scope": 19395,
                  "src": "380:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19388,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "380:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19391,
                  "indexed": false,
                  "name": "_oldMakerDAO",
                  "nodeType": "VariableDeclaration",
                  "scope": 19395,
                  "src": "402:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19390,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "402:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19393,
                  "indexed": false,
                  "name": "_now",
                  "nodeType": "VariableDeclaration",
                  "scope": 19395,
                  "src": "424:12:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19392,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "424:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "379:58:55"
            },
            "src": "356:82:55"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 19403,
            "name": "LogSetManualPrice",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 19402,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19397,
                  "indexed": false,
                  "name": "_oldPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 19403,
                  "src": "467:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19396,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "467:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19399,
                  "indexed": false,
                  "name": "_newPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 19403,
                  "src": "486:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19398,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "486:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19401,
                  "indexed": false,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 19403,
                  "src": "505:13:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19400,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "505:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "466:53:55"
            },
            "src": "443:77:55"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 19409,
            "name": "LogSetManualOverride",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 19408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19405,
                  "indexed": false,
                  "name": "_override",
                  "nodeType": "VariableDeclaration",
                  "scope": 19409,
                  "src": "552:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 19404,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "552:4:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19407,
                  "indexed": false,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 19409,
                  "src": "568:13:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19406,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "568:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "551:31:55"
            },
            "src": "525:58:55"
          },
          {
            "body": {
              "id": 19426,
              "nodeType": "Block",
              "src": "649:95:55",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19417,
                        "name": "_makerDAO",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19411,
                        "src": "682:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19418,
                        "name": "makerDAO",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19383,
                        "src": "693:8:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19419,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "703:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 19416,
                      "name": "LogChangeMakerDAO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19395,
                      "src": "664:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 19420,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "664:43:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19421,
                  "nodeType": "EmitStatement",
                  "src": "659:48:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 19424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 19422,
                      "name": "makerDAO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19383,
                      "src": "717:8:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 19423,
                      "name": "_makerDAO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19411,
                      "src": "728:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "717:20:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 19425,
                  "nodeType": "ExpressionStatement",
                  "src": "717:20:55"
                }
              ]
            },
            "documentation": null,
            "id": 19427,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 19414,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 19413,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "639:9:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "639:9:55"
              }
            ],
            "name": "changeMakerDAO",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19411,
                  "name": "_makerDAO",
                  "nodeType": "VariableDeclaration",
                  "scope": 19427,
                  "src": "613:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19410,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "613:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "612:19:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19415,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "649:0:55"
            },
            "scope": 19523,
            "src": "589:155:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 19436,
              "nodeType": "Block",
              "src": "889:34:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 19433,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "914:1:55",
                        "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": 19432,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "906:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 19434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "906:10:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 19431,
                  "id": 19435,
                  "nodeType": "Return",
                  "src": "899:17:55"
                }
              ]
            },
            "documentation": "@notice Returns address of oracle currency (0x0 for ETH)",
            "id": 19437,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencyAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19428,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "855:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19431,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19430,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 19437,
                  "src": "880:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19429,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "880:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "879:9:55"
            },
            "scope": 19523,
            "src": "828:95:55",
            "stateMutability": "view",
            "superFunction": 9984,
            "visibility": "external"
          },
          {
            "body": {
              "id": 19446,
              "nodeType": "Block",
              "src": "1066:38:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "455448",
                        "id": 19443,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1091:5:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4",
                          "typeString": "literal_string \"ETH\""
                        },
                        "value": "ETH"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4",
                          "typeString": "literal_string \"ETH\""
                        }
                      ],
                      "id": 19442,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1083:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes32_$",
                        "typeString": "type(bytes32)"
                      },
                      "typeName": "bytes32"
                    },
                    "id": 19444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1083:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 19441,
                  "id": 19445,
                  "nodeType": "Return",
                  "src": "1076:21:55"
                }
              ]
            },
            "documentation": "@notice Returns symbol of oracle currency (0x0 for ETH)",
            "id": 19447,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencySymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19438,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1032:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19441,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19440,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 19447,
                  "src": "1057:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 19439,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1056:9:55"
            },
            "scope": 19523,
            "src": "1006:98:55",
            "stateMutability": "view",
            "superFunction": 9989,
            "visibility": "external"
          },
          {
            "body": {
              "id": 19456,
              "nodeType": "Block",
              "src": "1234:38:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "555344",
                        "id": 19453,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1259:5:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e",
                          "typeString": "literal_string \"USD\""
                        },
                        "value": "USD"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e",
                          "typeString": "literal_string \"USD\""
                        }
                      ],
                      "id": 19452,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1251:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes32_$",
                        "typeString": "type(bytes32)"
                      },
                      "typeName": "bytes32"
                    },
                    "id": 19454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1251:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 19451,
                  "id": 19455,
                  "nodeType": "Return",
                  "src": "1244:21:55"
                }
              ]
            },
            "documentation": "@notice Returns denomination of price",
            "id": 19457,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencyDenominated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19448,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1200:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19451,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19450,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 19457,
                  "src": "1225:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 19449,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1225:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1224:9:55"
            },
            "scope": 19523,
            "src": "1169:103:55",
            "stateMutability": "view",
            "superFunction": 9994,
            "visibility": "external"
          },
          {
            "body": {
              "id": 19486,
              "nodeType": "Block",
              "src": "1400:244:55",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 19462,
                    "name": "manualOverride",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19385,
                    "src": "1414:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 19466,
                  "nodeType": "IfStatement",
                  "src": "1410:63:55",
                  "trueBody": {
                    "id": 19465,
                    "nodeType": "Block",
                    "src": "1430:43:55",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 19463,
                          "name": "manualPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19387,
                          "src": "1451:11:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 19461,
                        "id": 19464,
                        "nodeType": "Return",
                        "src": "1444:18:55"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    19468,
                    19470
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19468,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 19487,
                      "src": "1483:13:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 19467,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1483:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 19470,
                      "name": "valid",
                      "nodeType": "VariableDeclaration",
                      "scope": 19487,
                      "src": "1498:10:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 19469,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1498:4:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 19476,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 19472,
                            "name": "makerDAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19383,
                            "src": "1523:8:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 19471,
                          "name": "Medianizer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2911,
                          "src": "1512:10:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Medianizer_$2911_$",
                            "typeString": "type(contract Medianizer)"
                          }
                        },
                        "id": 19473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1512:20:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Medianizer_$2911",
                          "typeString": "contract Medianizer"
                        }
                      },
                      "id": 19474,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "peek",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2477,
                      "src": "1512:25:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$_t_bool_$",
                        "typeString": "function () view external returns (bytes32,bool)"
                      }
                    },
                    "id": 19475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1512:27:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes32_$_t_bool_$",
                      "typeString": "tuple(bytes32,bool)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1482:57:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19478,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19470,
                        "src": "1557:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4d616b657244414f204f7261636c652072657475726e696e6720696e76616c69642076616c7565",
                        "id": 19479,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1564:41:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9fac6a3bcc7af77d905fab9fe17fd3ec9aa0cb61cd971a38f298cf5082e69de5",
                          "typeString": "literal_string \"MakerDAO Oracle returning invalid value\""
                        },
                        "value": "MakerDAO Oracle returning invalid value"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9fac6a3bcc7af77d905fab9fe17fd3ec9aa0cb61cd971a38f298cf5082e69de5",
                          "typeString": "literal_string \"MakerDAO Oracle returning invalid value\""
                        }
                      ],
                      "id": 19477,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "1549:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 19480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1549:57:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19481,
                  "nodeType": "ExpressionStatement",
                  "src": "1549:57:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19483,
                        "name": "price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19468,
                        "src": "1631:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 19482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1623:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 19484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1623:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 19461,
                  "id": 19485,
                  "nodeType": "Return",
                  "src": "1616:21:55"
                }
              ]
            },
            "documentation": "@notice Returns price - should throw if not valid",
            "id": 19487,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19458,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1366:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19461,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19460,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 19487,
                  "src": "1391:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19459,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1390:9:55"
            },
            "scope": 19523,
            "src": "1349:295:55",
            "stateMutability": "view",
            "superFunction": 9999,
            "visibility": "external"
          },
          {
            "body": {
              "id": 19504,
              "nodeType": "Block",
              "src": "1849:95:55",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19495,
                        "name": "manualPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19387,
                        "src": "1882:11:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19496,
                        "name": "_price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19489,
                        "src": "1895:6:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19497,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "1903:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 19494,
                      "name": "LogSetManualPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19403,
                      "src": "1864:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256,uint256)"
                      }
                    },
                    "id": 19498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1864:43:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19499,
                  "nodeType": "EmitStatement",
                  "src": "1859:48:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 19502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 19500,
                      "name": "manualPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19387,
                      "src": "1917:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 19501,
                      "name": "_price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19489,
                      "src": "1931:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1917:20:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 19503,
                  "nodeType": "ExpressionStatement",
                  "src": "1917:20:55"
                }
              ]
            },
            "documentation": "@notice Set a manual price. NA - this will only be used if manualOverride == true\n@param _price Price to set",
            "id": 19505,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 19492,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 19491,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "1839:9:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1839:9:55"
              }
            ],
            "name": "setManualPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19489,
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 19505,
                  "src": "1816:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19488,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1815:16:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19493,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1849:0:55"
            },
            "scope": 19523,
            "src": "1792:152:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 19521,
              "nodeType": "Block",
              "src": "2162:94:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 19514,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 19512,
                      "name": "manualOverride",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19385,
                      "src": "2172:14:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 19513,
                      "name": "_override",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19507,
                      "src": "2189:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2172:26:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19515,
                  "nodeType": "ExpressionStatement",
                  "src": "2172:26:55"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19517,
                        "name": "_override",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19507,
                        "src": "2234:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19518,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "2245:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 19516,
                      "name": "LogSetManualOverride",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19409,
                      "src": "2213:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bool_$_t_uint256_$returns$__$",
                        "typeString": "function (bool,uint256)"
                      }
                    },
                    "id": 19519,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2213:36:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19520,
                  "nodeType": "EmitStatement",
                  "src": "2208:41:55"
                }
              ]
            },
            "documentation": "@notice Determine whether manual price is used or not\n@param _override Whether to use the manual override price or not",
            "id": 19522,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 19510,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 19509,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "2152:9:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2152:9:55"
              }
            ],
            "name": "setManualOverride",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19507,
                  "name": "_override",
                  "nodeType": "VariableDeclaration",
                  "scope": 19522,
                  "src": "2129:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 19506,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2129:4:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2128:16:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19511,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2162:0:55"
            },
            "scope": 19523,
            "src": "2102:154:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 19524,
        "src": "164:2095:55"
      }
    ],
    "src": "0:2260:55"
  },
  "legacyAST": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/oracles/MakerDAOOracle.sol",
    "exportedSymbols": {
      "MakerDAOOracle": [
        19523
      ]
    },
    "id": 19524,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 19373,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:55"
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IOracle.sol",
        "file": "../interfaces/IOracle.sol",
        "id": 19374,
        "nodeType": "ImportDirective",
        "scope": 19524,
        "sourceUnit": 10001,
        "src": "26:35:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/external/Medianizer.sol",
        "file": "../external/Medianizer.sol",
        "id": 19375,
        "nodeType": "ImportDirective",
        "scope": 19524,
        "sourceUnit": 2912,
        "src": "62:36:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 19376,
        "nodeType": "ImportDirective",
        "scope": 19524,
        "sourceUnit": 22665,
        "src": "99:63:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 19377,
              "name": "IOracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10000,
              "src": "191:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IOracle_$10000",
                "typeString": "contract IOracle"
              }
            },
            "id": 19378,
            "nodeType": "InheritanceSpecifier",
            "src": "191:7:55"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 19379,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22664,
              "src": "200:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$22664",
                "typeString": "contract Ownable"
              }
            },
            "id": 19380,
            "nodeType": "InheritanceSpecifier",
            "src": "200:7:55"
          }
        ],
        "contractDependencies": [
          10000,
          22664
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 19523,
        "linearizedBaseContracts": [
          19523,
          22664,
          10000
        ],
        "name": "MakerDAOOracle",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 19383,
            "name": "makerDAO",
            "nodeType": "VariableDeclaration",
            "scope": 19523,
            "src": "215:68:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 19381,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "215:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307837323944313966363537424430363134623439383543663144383235333163363735363931393742",
              "id": 19382,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "241:42:55",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              },
              "value": "0x729D19f657BD0614b4985Cf1D82531c67569197B"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 19385,
            "name": "manualOverride",
            "nodeType": "VariableDeclaration",
            "scope": 19523,
            "src": "290:26:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 19384,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "290:4:55",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 19387,
            "name": "manualPrice",
            "nodeType": "VariableDeclaration",
            "scope": 19523,
            "src": "323:26:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 19386,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "323:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 19395,
            "name": "LogChangeMakerDAO",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 19394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19389,
                  "indexed": false,
                  "name": "_newMakerDAO",
                  "nodeType": "VariableDeclaration",
                  "scope": 19395,
                  "src": "380:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19388,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "380:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19391,
                  "indexed": false,
                  "name": "_oldMakerDAO",
                  "nodeType": "VariableDeclaration",
                  "scope": 19395,
                  "src": "402:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19390,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "402:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19393,
                  "indexed": false,
                  "name": "_now",
                  "nodeType": "VariableDeclaration",
                  "scope": 19395,
                  "src": "424:12:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19392,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "424:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "379:58:55"
            },
            "src": "356:82:55"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 19403,
            "name": "LogSetManualPrice",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 19402,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19397,
                  "indexed": false,
                  "name": "_oldPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 19403,
                  "src": "467:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19396,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "467:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19399,
                  "indexed": false,
                  "name": "_newPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 19403,
                  "src": "486:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19398,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "486:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19401,
                  "indexed": false,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 19403,
                  "src": "505:13:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19400,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "505:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "466:53:55"
            },
            "src": "443:77:55"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 19409,
            "name": "LogSetManualOverride",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 19408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19405,
                  "indexed": false,
                  "name": "_override",
                  "nodeType": "VariableDeclaration",
                  "scope": 19409,
                  "src": "552:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 19404,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "552:4:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19407,
                  "indexed": false,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 19409,
                  "src": "568:13:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19406,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "568:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "551:31:55"
            },
            "src": "525:58:55"
          },
          {
            "body": {
              "id": 19426,
              "nodeType": "Block",
              "src": "649:95:55",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19417,
                        "name": "_makerDAO",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19411,
                        "src": "682:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19418,
                        "name": "makerDAO",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19383,
                        "src": "693:8:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19419,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "703:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 19416,
                      "name": "LogChangeMakerDAO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19395,
                      "src": "664:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 19420,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "664:43:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19421,
                  "nodeType": "EmitStatement",
                  "src": "659:48:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 19424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 19422,
                      "name": "makerDAO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19383,
                      "src": "717:8:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 19423,
                      "name": "_makerDAO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19411,
                      "src": "728:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "717:20:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 19425,
                  "nodeType": "ExpressionStatement",
                  "src": "717:20:55"
                }
              ]
            },
            "documentation": null,
            "id": 19427,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 19414,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 19413,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "639:9:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "639:9:55"
              }
            ],
            "name": "changeMakerDAO",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19411,
                  "name": "_makerDAO",
                  "nodeType": "VariableDeclaration",
                  "scope": 19427,
                  "src": "613:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19410,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "613:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "612:19:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19415,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "649:0:55"
            },
            "scope": 19523,
            "src": "589:155:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 19436,
              "nodeType": "Block",
              "src": "889:34:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 19433,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "914:1:55",
                        "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": 19432,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "906:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 19434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "906:10:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 19431,
                  "id": 19435,
                  "nodeType": "Return",
                  "src": "899:17:55"
                }
              ]
            },
            "documentation": "@notice Returns address of oracle currency (0x0 for ETH)",
            "id": 19437,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencyAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19428,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "855:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19431,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19430,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 19437,
                  "src": "880:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19429,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "880:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "879:9:55"
            },
            "scope": 19523,
            "src": "828:95:55",
            "stateMutability": "view",
            "superFunction": 9984,
            "visibility": "external"
          },
          {
            "body": {
              "id": 19446,
              "nodeType": "Block",
              "src": "1066:38:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "455448",
                        "id": 19443,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1091:5:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4",
                          "typeString": "literal_string \"ETH\""
                        },
                        "value": "ETH"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4",
                          "typeString": "literal_string \"ETH\""
                        }
                      ],
                      "id": 19442,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1083:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes32_$",
                        "typeString": "type(bytes32)"
                      },
                      "typeName": "bytes32"
                    },
                    "id": 19444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1083:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 19441,
                  "id": 19445,
                  "nodeType": "Return",
                  "src": "1076:21:55"
                }
              ]
            },
            "documentation": "@notice Returns symbol of oracle currency (0x0 for ETH)",
            "id": 19447,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencySymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19438,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1032:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19441,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19440,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 19447,
                  "src": "1057:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 19439,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1056:9:55"
            },
            "scope": 19523,
            "src": "1006:98:55",
            "stateMutability": "view",
            "superFunction": 9989,
            "visibility": "external"
          },
          {
            "body": {
              "id": 19456,
              "nodeType": "Block",
              "src": "1234:38:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "555344",
                        "id": 19453,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1259:5:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e",
                          "typeString": "literal_string \"USD\""
                        },
                        "value": "USD"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e",
                          "typeString": "literal_string \"USD\""
                        }
                      ],
                      "id": 19452,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1251:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes32_$",
                        "typeString": "type(bytes32)"
                      },
                      "typeName": "bytes32"
                    },
                    "id": 19454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1251:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 19451,
                  "id": 19455,
                  "nodeType": "Return",
                  "src": "1244:21:55"
                }
              ]
            },
            "documentation": "@notice Returns denomination of price",
            "id": 19457,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencyDenominated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19448,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1200:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19451,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19450,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 19457,
                  "src": "1225:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 19449,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1225:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1224:9:55"
            },
            "scope": 19523,
            "src": "1169:103:55",
            "stateMutability": "view",
            "superFunction": 9994,
            "visibility": "external"
          },
          {
            "body": {
              "id": 19486,
              "nodeType": "Block",
              "src": "1400:244:55",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 19462,
                    "name": "manualOverride",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19385,
                    "src": "1414:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 19466,
                  "nodeType": "IfStatement",
                  "src": "1410:63:55",
                  "trueBody": {
                    "id": 19465,
                    "nodeType": "Block",
                    "src": "1430:43:55",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 19463,
                          "name": "manualPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19387,
                          "src": "1451:11:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 19461,
                        "id": 19464,
                        "nodeType": "Return",
                        "src": "1444:18:55"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    19468,
                    19470
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19468,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 19487,
                      "src": "1483:13:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 19467,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1483:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 19470,
                      "name": "valid",
                      "nodeType": "VariableDeclaration",
                      "scope": 19487,
                      "src": "1498:10:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 19469,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1498:4:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 19476,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 19472,
                            "name": "makerDAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19383,
                            "src": "1523:8:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 19471,
                          "name": "Medianizer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2911,
                          "src": "1512:10:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Medianizer_$2911_$",
                            "typeString": "type(contract Medianizer)"
                          }
                        },
                        "id": 19473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1512:20:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Medianizer_$2911",
                          "typeString": "contract Medianizer"
                        }
                      },
                      "id": 19474,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "peek",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2477,
                      "src": "1512:25:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$_t_bool_$",
                        "typeString": "function () view external returns (bytes32,bool)"
                      }
                    },
                    "id": 19475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1512:27:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes32_$_t_bool_$",
                      "typeString": "tuple(bytes32,bool)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1482:57:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19478,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19470,
                        "src": "1557:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4d616b657244414f204f7261636c652072657475726e696e6720696e76616c69642076616c7565",
                        "id": 19479,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1564:41:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9fac6a3bcc7af77d905fab9fe17fd3ec9aa0cb61cd971a38f298cf5082e69de5",
                          "typeString": "literal_string \"MakerDAO Oracle returning invalid value\""
                        },
                        "value": "MakerDAO Oracle returning invalid value"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9fac6a3bcc7af77d905fab9fe17fd3ec9aa0cb61cd971a38f298cf5082e69de5",
                          "typeString": "literal_string \"MakerDAO Oracle returning invalid value\""
                        }
                      ],
                      "id": 19477,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23135,
                      "src": "1549:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 19480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1549:57:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19481,
                  "nodeType": "ExpressionStatement",
                  "src": "1549:57:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19483,
                        "name": "price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19468,
                        "src": "1631:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 19482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1623:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 19484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1623:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 19461,
                  "id": 19485,
                  "nodeType": "Return",
                  "src": "1616:21:55"
                }
              ]
            },
            "documentation": "@notice Returns price - should throw if not valid",
            "id": 19487,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19458,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1366:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19461,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19460,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 19487,
                  "src": "1391:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19459,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1390:9:55"
            },
            "scope": 19523,
            "src": "1349:295:55",
            "stateMutability": "view",
            "superFunction": 9999,
            "visibility": "external"
          },
          {
            "body": {
              "id": 19504,
              "nodeType": "Block",
              "src": "1849:95:55",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19495,
                        "name": "manualPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19387,
                        "src": "1882:11:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19496,
                        "name": "_price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19489,
                        "src": "1895:6:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19497,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "1903:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 19494,
                      "name": "LogSetManualPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19403,
                      "src": "1864:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256,uint256)"
                      }
                    },
                    "id": 19498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1864:43:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19499,
                  "nodeType": "EmitStatement",
                  "src": "1859:48:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 19502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 19500,
                      "name": "manualPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19387,
                      "src": "1917:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 19501,
                      "name": "_price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19489,
                      "src": "1931:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1917:20:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 19503,
                  "nodeType": "ExpressionStatement",
                  "src": "1917:20:55"
                }
              ]
            },
            "documentation": "@notice Set a manual price. NA - this will only be used if manualOverride == true\n@param _price Price to set",
            "id": 19505,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 19492,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 19491,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "1839:9:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1839:9:55"
              }
            ],
            "name": "setManualPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19489,
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 19505,
                  "src": "1816:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19488,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1815:16:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19493,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1849:0:55"
            },
            "scope": 19523,
            "src": "1792:152:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 19521,
              "nodeType": "Block",
              "src": "2162:94:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 19514,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 19512,
                      "name": "manualOverride",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19385,
                      "src": "2172:14:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 19513,
                      "name": "_override",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19507,
                      "src": "2189:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2172:26:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19515,
                  "nodeType": "ExpressionStatement",
                  "src": "2172:26:55"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 19517,
                        "name": "_override",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19507,
                        "src": "2234:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 19518,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "2245:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 19516,
                      "name": "LogSetManualOverride",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19409,
                      "src": "2213:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bool_$_t_uint256_$returns$__$",
                        "typeString": "function (bool,uint256)"
                      }
                    },
                    "id": 19519,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2213:36:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19520,
                  "nodeType": "EmitStatement",
                  "src": "2208:41:55"
                }
              ]
            },
            "documentation": "@notice Determine whether manual price is used or not\n@param _override Whether to use the manual override price or not",
            "id": 19522,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 19510,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 19509,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "2152:9:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2152:9:55"
              }
            ],
            "name": "setManualOverride",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19507,
                  "name": "_override",
                  "nodeType": "VariableDeclaration",
                  "scope": 19522,
                  "src": "2129:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 19506,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2129:4:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2128:16:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 19511,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2162:0:55"
            },
            "scope": 19523,
            "src": "2102:154:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 19524,
        "src": "164:2095:55"
      }
    ],
    "src": "0:2260:55"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-08-21T09:48:12.669Z"
}