{
  "contractName": "EventData",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "outcome",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "content_hash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "collateralBranch",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "minTimeout",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "minBond",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "outcomeTokens",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "forkonomicToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "questionId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "openingTs",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "fSystem",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "outcomeToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "index",
          "type": "uint8"
        }
      ],
      "name": "OutcomeTokenCreation",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "buyer",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "collateralTokenCount",
          "type": "uint256"
        }
      ],
      "name": "OutcomeTokenSetIssuance",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "seller",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCount",
          "type": "uint256"
        }
      ],
      "name": "OutcomeTokenSetRevocation",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "receiver",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "winnings",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "branch",
          "type": "bytes32"
        }
      ],
      "name": "WinningsRedemption",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "a",
          "type": "bytes32"
        }
      ],
      "name": "LogB",
      "type": "event"
    }
  ],
  "bytecode": "0x60806040526101f46006556007805463ffffffff19166201518017905534801561002857600080fd5b506102a8806100386000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327793f8781146100a857806328047258146100cf578063413d24b9146100e45780634cf71be4146100f9578063831518b7146101275780638abe59ea1461013c578063942032e31461017d578063b06a5c5214610192578063c7049657146101a7578063d440796e146101bc575b600080fd5b3480156100b457600080fd5b506100bd6101d1565b60408051918252519081900360200190f35b3480156100db57600080fd5b506100bd6101d7565b3480156100f057600080fd5b506100bd6101dd565b34801561010557600080fd5b5061010e6101e3565b6040805163ffffffff9092168252519081900360200190f35b34801561013357600080fd5b506100bd6101ef565b34801561014857600080fd5b506101546004356101f5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561018957600080fd5b5061015461022a565b34801561019e57600080fd5b506100bd610246565b3480156101b357600080fd5b5061010e61024c565b3480156101c857600080fd5b50610154610260565b60085481565b60055481565b60035481565b60075463ffffffff1681565b60065481565b600080548290811061020357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600754640100000000900463ffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820657d2d2ba784f6722bef807c7619117f28614851a6b94d0c4061bbe92433ac550029",
  "deployedBytecode": "0x6080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327793f8781146100a857806328047258146100cf578063413d24b9146100e45780634cf71be4146100f9578063831518b7146101275780638abe59ea1461013c578063942032e31461017d578063b06a5c5214610192578063c7049657146101a7578063d440796e146101bc575b600080fd5b3480156100b457600080fd5b506100bd6101d1565b60408051918252519081900360200190f35b3480156100db57600080fd5b506100bd6101d7565b3480156100f057600080fd5b506100bd6101dd565b34801561010557600080fd5b5061010e6101e3565b6040805163ffffffff9092168252519081900360200190f35b34801561013357600080fd5b506100bd6101ef565b34801561014857600080fd5b506101546004356101f5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561018957600080fd5b5061015461022a565b34801561019e57600080fd5b506100bd610246565b3480156101b357600080fd5b5061010e61024c565b3480156101c857600080fd5b50610154610260565b60085481565b60055481565b60035481565b60075463ffffffff1681565b60065481565b600080548290811061020357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600754640100000000900463ffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820657d2d2ba784f6722bef807c7619117f28614851a6b94d0c4061bbe92433ac550029",
  "sourceMap": "279:825:0:-;;;972:3;947:28;;981:35;;;-1:-1:-1;;981:35:0;1008:8;981:35;;;279:825;5:2:-1;;;;30:1;27;20:12;5:2;279:825:0;;;;;;;",
  "deployedSourceMap": "279:825:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1078:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1078:22:0;;;;;;;;;;;;;;;;;;;;914:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;914:27:0;;;;846:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;846:31:0;;;;981:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;981:35:0;;;;;;;;;;;;;;;;;;;;;;;947:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;947:28:0;;;;722:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;722:35:0;;;;;;;;;;;;;;;;;;;;;;;;765:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;765:38:0;;;;883:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;883:25:0;;;;1022:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1022:23:0;;;;809:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;809:31:0;;;;1078:22;;;;:::o;914:27::-;;;;:::o;846:31::-;;;;:::o;981:35::-;;;;;;:::o;947:28::-;;;;:::o;722:35::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;722:35:0;:::o;765:38::-;;;;;;:::o;883:25::-;;;;:::o;1022:23::-;;;;;;;;;:::o;809:31::-;;;;;;:::o",
  "source": "pragma solidity ^0.4.24;\nimport \"@gnosis.pm/pm-contracts/contracts/Tokens/Token.sol\";\nimport \"./OutcomeToken.sol\";\nimport \"./Proxy.sol\";\nimport \"@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol\";\nimport \"@realitio/realitio-contracts/truffle/contracts/Realitio.sol\";\n\n\ncontract EventData {\n\n    /*\n     *  Events\n     */\n    event OutcomeTokenCreation(OutcomeToken outcomeToken, uint8 index);\n    event OutcomeTokenSetIssuance(address indexed buyer, uint collateralTokenCount);\n    event OutcomeTokenSetRevocation(address indexed seller, uint outcomeTokenCount);\n    event WinningsRedemption(address indexed receiver, uint winnings, bytes32 branch);\n    event LogB(bytes32 a);\n    /*\n     *  Storage\n     */\n    OutcomeToken[] public outcomeTokens;\n\n\n    ForkonomicToken public forkonomicToken;\n    ForkonomicSystem public fSystem;\n    bytes32 public collateralBranch;\n    bytes32 public questionId;\n    bytes32 public content_hash;\n    uint256 public minBond = 500;\n    uint32 public minTimeout = 60*60*24;\n    uint32 public openingTs;\n    Realitio realityCheck;\n    bytes32 public outcome;\n\n}\n\n/// @title Event contract - Provide basic functionality required by different event types\ncontract Event is Proxied, EventData {\n\n    /*\n     *  Public functions\n     */\n    /// @dev Buys equal number of tokens of all outcomes, exchanging collateral tokens and sets of outcome tokens 1:1\n    /// @param collateralTokenCount Number of collateral tokens\n    function buyAllOutcomes(uint collateralTokenCount)\n        public\n    {\n        // Transfer collateral tokens to events contract\n        require(forkonomicToken.transferFrom(msg.sender, this, collateralTokenCount, collateralBranch), \"transfer was not possible\");\n        // Issue new outcome tokens to sender\n        for (uint8 i = 0; i < outcomeTokens.length; i++)\n            outcomeTokens[i].issue(msg.sender, collateralTokenCount);\n        emit OutcomeTokenSetIssuance(msg.sender, collateralTokenCount);\n    }\n\n    /// @dev Sells equal number of tokens of all outcomes, exchanging collateral tokens and sets of outcome tokens 1:1\n    /// @param outcomeTokenCount Number of outcome tokens\n    function sellAllOutcomes(uint outcomeTokenCount)\n        public\n    {  \n          // Revoke sender's outcome tokens of all outcomes\n        for (uint8 i = 0; i < outcomeTokens.length; i++)\n            outcomeTokens[i].revoke(msg.sender, outcomeTokenCount);\n        // Transfer collateral tokens to sender\n        require(forkonomicToken.transfer(msg.sender, outcomeTokenCount, collateralBranch), \"transfer failed\");\n        emit OutcomeTokenSetRevocation(msg.sender, outcomeTokenCount);\n    }\n\n \n    /// @dev gets winning event outcome\n    /// @param branch is the branch on which a user wants to know the result\n    function getOutcome(bytes32 branch, address arbitrator)\n        public\n        view\n        returns (int outcome)\n    {\n\n        // check that original branch is a father of executionbranch:\n        require(fSystem.isFatherOfBranch(collateralBranch, branch), \" not a fahter branch\");\n\n         // ensure that arbitrator is white-listed\n        require(fSystem.isArbitratorWhitelisted(arbitrator, branch), \"arbitrator not white-listed\");\n\n        require(fSystem.branchTimestamp(branch) > realityCheck.getFinalizeTS(questionId) - fSystem.WINDOWTIMESPAN(), \"branch is to old\");\n        outcome = int(realityCheck.getFinalAnswerIfMatches(questionId, content_hash, arbitrator, minTimeout, minBond));\n    }\n\n    /// @dev Returns outcome count\n    /// @return Outcome count\n    function getOutcomeCount()\n        public\n        view\n        returns (uint8)\n    {\n        return uint8(outcomeTokens.length);\n    }\n\n    /// @dev Returns outcome tokens array\n    /// @return Outcome tokens\n    function getOutcomeTokens()\n        public\n        view\n        returns (OutcomeToken[])\n    {\n        return outcomeTokens;\n    }\n\n    /// @dev Returns the amount of outcome tokens held by owner\n    /// @return Outcome token distribution\n    function getOutcomeTokenDistribution(address owner)\n        public\n        view\n        returns (uint[] outcomeTokenDistribution)\n    {\n        outcomeTokenDistribution = new uint[](outcomeTokens.length);\n        for (uint8 i = 0; i < outcomeTokenDistribution.length; i++)\n            outcomeTokenDistribution[i] = outcomeTokens[i].balanceOf(owner);\n    }\n\n}\n",
  "sourcePath": "/home/josojo/reality/tokenized-events/contracts/Event.sol",
  "ast": {
    "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Event.sol",
    "exportedSymbols": {
      "Event": [
        279
      ],
      "EventData": [
        66
      ]
    },
    "id": 280,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:0"
      },
      {
        "absolutePath": "@gnosis.pm/pm-contracts/contracts/Tokens/Token.sol",
        "file": "@gnosis.pm/pm-contracts/contracts/Tokens/Token.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 2704,
        "src": "25:60:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/OutcomeToken.sol",
        "file": "./OutcomeToken.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 1701,
        "src": "86:28:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Proxy.sol",
        "file": "./Proxy.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 1734,
        "src": "115:21:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 6227,
        "src": "137:69:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
        "file": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
        "id": 6,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 8290,
        "src": "207:69:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 66,
        "linearizedBaseContracts": [
          66
        ],
        "name": "EventData",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 12,
            "name": "OutcomeTokenCreation",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 11,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8,
                  "indexed": false,
                  "name": "outcomeToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 12,
                  "src": "362:25:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                    "typeString": "contract OutcomeToken"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7,
                    "name": "OutcomeToken",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1700,
                    "src": "362:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                      "typeString": "contract OutcomeToken"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10,
                  "indexed": false,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 12,
                  "src": "389:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 9,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "389:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "361:40:0"
            },
            "src": "335:67:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 18,
            "name": "OutcomeTokenSetIssuance",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 17,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14,
                  "indexed": true,
                  "name": "buyer",
                  "nodeType": "VariableDeclaration",
                  "scope": 18,
                  "src": "437:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "437:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16,
                  "indexed": false,
                  "name": "collateralTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18,
                  "src": "460:25:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "460:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "436:50:0"
            },
            "src": "407:80:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 24,
            "name": "OutcomeTokenSetRevocation",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20,
                  "indexed": true,
                  "name": "seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 24,
                  "src": "524:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "524:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22,
                  "indexed": false,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 24,
                  "src": "548:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "548:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "523:48:0"
            },
            "src": "492:80:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 32,
            "name": "WinningsRedemption",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 31,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26,
                  "indexed": true,
                  "name": "receiver",
                  "nodeType": "VariableDeclaration",
                  "scope": 32,
                  "src": "602:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "602:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28,
                  "indexed": false,
                  "name": "winnings",
                  "nodeType": "VariableDeclaration",
                  "scope": 32,
                  "src": "628:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "628:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 30,
                  "indexed": false,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 32,
                  "src": "643:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 29,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "643:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "601:57:0"
            },
            "src": "577:82:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 36,
            "name": "LogB",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 35,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 34,
                  "indexed": false,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 36,
                  "src": "675:9:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 33,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "675:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "674:11:0"
            },
            "src": "664:22:0"
          },
          {
            "constant": false,
            "id": 39,
            "name": "outcomeTokens",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "722:35:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
              "typeString": "contract OutcomeToken[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 37,
                "name": "OutcomeToken",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1700,
                "src": "722:12:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                  "typeString": "contract OutcomeToken"
                }
              },
              "id": 38,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "722:14:0",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage_ptr",
                "typeString": "contract OutcomeToken[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 41,
            "name": "forkonomicToken",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "765:38:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
              "typeString": "contract ForkonomicToken"
            },
            "typeName": {
              "contractScope": null,
              "id": 40,
              "name": "ForkonomicToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6226,
              "src": "765:15:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                "typeString": "contract ForkonomicToken"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 43,
            "name": "fSystem",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "809:31:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
              "typeString": "contract ForkonomicSystem"
            },
            "typeName": {
              "contractScope": null,
              "id": 42,
              "name": "ForkonomicSystem",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5270,
              "src": "809:16:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                "typeString": "contract ForkonomicSystem"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 45,
            "name": "collateralBranch",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "846:31:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 44,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "846:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 47,
            "name": "questionId",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "883:25:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 46,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "883:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 49,
            "name": "content_hash",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "914:27:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 48,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "914:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 52,
            "name": "minBond",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "947:28:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 50,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "947:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "353030",
              "id": 51,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "972:3:0",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_500_by_1",
                "typeString": "int_const 500"
              },
              "value": "500"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 59,
            "name": "minTimeout",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "981:35:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 53,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "981:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "commonType": {
                "typeIdentifier": "t_rational_86400_by_1",
                "typeString": "int_const 86400"
              },
              "id": 58,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "argumentTypes": null,
                "commonType": {
                  "typeIdentifier": "t_rational_3600_by_1",
                  "typeString": "int_const 3600"
                },
                "id": 56,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "leftExpression": {
                  "argumentTypes": null,
                  "hexValue": "3630",
                  "id": 54,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "1008:2:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_60_by_1",
                    "typeString": "int_const 60"
                  },
                  "value": "60"
                },
                "nodeType": "BinaryOperation",
                "operator": "*",
                "rightExpression": {
                  "argumentTypes": null,
                  "hexValue": "3630",
                  "id": 55,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "1011:2:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_60_by_1",
                    "typeString": "int_const 60"
                  },
                  "value": "60"
                },
                "src": "1008:5:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_3600_by_1",
                  "typeString": "int_const 3600"
                }
              },
              "nodeType": "BinaryOperation",
              "operator": "*",
              "rightExpression": {
                "argumentTypes": null,
                "hexValue": "3234",
                "id": 57,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1014:2:0",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_24_by_1",
                  "typeString": "int_const 24"
                },
                "value": "24"
              },
              "src": "1008:8:0",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_86400_by_1",
                "typeString": "int_const 86400"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 61,
            "name": "openingTs",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "1022:23:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 60,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "1022:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 63,
            "name": "realityCheck",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "1051:21:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Realitio_$8289",
              "typeString": "contract Realitio"
            },
            "typeName": {
              "contractScope": null,
              "id": 62,
              "name": "Realitio",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8289,
              "src": "1051:8:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Realitio_$8289",
                "typeString": "contract Realitio"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 65,
            "name": "outcome",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "1078:22:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 64,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1078:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          }
        ],
        "scope": 280,
        "src": "279:825:0"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 67,
              "name": "Proxied",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1705,
              "src": "1214:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxied_$1705",
                "typeString": "contract Proxied"
              }
            },
            "id": 68,
            "nodeType": "InheritanceSpecifier",
            "src": "1214:7:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 69,
              "name": "EventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 66,
              "src": "1223:9:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EventData_$66",
                "typeString": "contract EventData"
              }
            },
            "id": 70,
            "nodeType": "InheritanceSpecifier",
            "src": "1223:9:0"
          }
        ],
        "contractDependencies": [
          66,
          1705
        ],
        "contractKind": "contract",
        "documentation": "@title Event contract - Provide basic functionality required by different event types",
        "fullyImplemented": true,
        "id": 279,
        "linearizedBaseContracts": [
          279,
          66,
          1705
        ],
        "name": "Event",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 114,
              "nodeType": "Block",
              "src": "1532:443:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 78,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "1636:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 79,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1636:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 80,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8568,
                            "src": "1648:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Event_$279",
                              "typeString": "contract Event"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 81,
                            "name": "collateralTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 72,
                            "src": "1654:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 82,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "1676:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_contract$_Event_$279",
                              "typeString": "contract Event"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 76,
                            "name": "forkonomicToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "1607:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 77,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5822,
                          "src": "1607:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 83,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1607:86:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e7366657220776173206e6f7420706f737369626c65",
                        "id": 84,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1695:27:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f6ff1ec099c10c17400f80e98435b846aaf762a4c605132d803186bd61ec0ce3",
                          "typeString": "literal_string \"transfer was not possible\""
                        },
                        "value": "transfer was not possible"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f6ff1ec099c10c17400f80e98435b846aaf762a4c605132d803186bd61ec0ce3",
                          "typeString": "literal_string \"transfer was not possible\""
                        }
                      ],
                      "id": 75,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "1599:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 85,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1599:124:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 86,
                  "nodeType": "ExpressionStatement",
                  "src": "1599:124:0"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 102,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8523,
                            "src": "1863:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1863:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 104,
                          "name": "collateralTokenCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 72,
                          "src": "1875:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 98,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "1840:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 100,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 99,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 88,
                            "src": "1854:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1840:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        },
                        "id": 101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "issue",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1666,
                        "src": "1840:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256) external"
                        }
                      },
                      "id": 105,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1840:56:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 106,
                    "nodeType": "ExpressionStatement",
                    "src": "1840:56:0"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 94,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 91,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 88,
                      "src": "1797:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 92,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "1801:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 93,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1801:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1797:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 107,
                  "initializationExpression": {
                    "assignments": [
                      88
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 88,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 115,
                        "src": "1784:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 87,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1784:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 90,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 89,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1794:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1784:11:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 96,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1823:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 95,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 88,
                        "src": "1823:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 97,
                    "nodeType": "ExpressionStatement",
                    "src": "1823:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "1779:117:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 109,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "1935:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1935:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 111,
                        "name": "collateralTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 72,
                        "src": "1947:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 108,
                      "name": "OutcomeTokenSetIssuance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18,
                      "src": "1911:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1911:57:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 113,
                  "nodeType": "EmitStatement",
                  "src": "1906:62:0"
                }
              ]
            },
            "documentation": "@dev Buys equal number of tokens of all outcomes, exchanging collateral tokens and sets of outcome tokens 1:1\n @param collateralTokenCount Number of collateral tokens",
            "id": 115,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "buyAllOutcomes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 73,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 72,
                  "name": "collateralTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 115,
                  "src": "1486:25:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 71,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1486:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1485:27:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 74,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1532:0:0"
            },
            "scope": 279,
            "src": "1462:513:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 158,
              "nodeType": "Block",
              "src": "2226:424:0",
              "statements": [
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 135,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8523,
                            "src": "2383:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 136,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2383:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 137,
                          "name": "outcomeTokenCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 117,
                          "src": "2395:17:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 131,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "2359:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 133,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 132,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 121,
                            "src": "2373:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2359:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        },
                        "id": 134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "revoke",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1699,
                        "src": "2359:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256) external"
                        }
                      },
                      "id": 138,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2359:54:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 139,
                    "nodeType": "ExpressionStatement",
                    "src": "2359:54:0"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 124,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 121,
                      "src": "2316:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 125,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "2320:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 126,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2320:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2316:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 140,
                  "initializationExpression": {
                    "assignments": [
                      121
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 121,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 159,
                        "src": "2303:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 120,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2303:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 123,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2313:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2303:11:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2342:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 128,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 121,
                        "src": "2342:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 130,
                    "nodeType": "ExpressionStatement",
                    "src": "2342:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "2298:115:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 144,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "2504:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2504:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 146,
                            "name": "outcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 117,
                            "src": "2516:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 147,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "2535:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 142,
                            "name": "forkonomicToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "2479:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 143,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5687,
                          "src": "2479:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 148,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2479:73:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e73666572206661696c6564",
                        "id": 149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2554:17:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b",
                          "typeString": "literal_string \"transfer failed\""
                        },
                        "value": "transfer failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b",
                          "typeString": "literal_string \"transfer failed\""
                        }
                      ],
                      "id": 141,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "2471:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2471:101:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 151,
                  "nodeType": "ExpressionStatement",
                  "src": "2471:101:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 153,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "2613:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 154,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2613:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 155,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 117,
                        "src": "2625:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 152,
                      "name": "OutcomeTokenSetRevocation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24,
                      "src": "2587:25:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2587:56:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 157,
                  "nodeType": "EmitStatement",
                  "src": "2582:61:0"
                }
              ]
            },
            "documentation": "@dev Sells equal number of tokens of all outcomes, exchanging collateral tokens and sets of outcome tokens 1:1\n @param outcomeTokenCount Number of outcome tokens",
            "id": 159,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "sellAllOutcomes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 118,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 117,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 159,
                  "src": "2183:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 116,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2183:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2182:24:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 119,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2226:0:0"
            },
            "scope": 279,
            "src": "2158:492:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 216,
              "nodeType": "Block",
              "src": "2893:583:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 171,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "3007:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 172,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 161,
                            "src": "3025:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 169,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "2982:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 170,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isFatherOfBranch",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5269,
                          "src": "2982:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2982:50:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "206e6f74206120666168746572206272616e6368",
                        "id": 174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3034:22:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fecba6b051edc33563935974e82be60cce75dcc936435beab8fbce00486c4643",
                          "typeString": "literal_string \" not a fahter branch\""
                        },
                        "value": " not a fahter branch"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_fecba6b051edc33563935974e82be60cce75dcc936435beab8fbce00486c4643",
                          "typeString": "literal_string \" not a fahter branch\""
                        }
                      ],
                      "id": 168,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "2974:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2974:83:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 176,
                  "nodeType": "ExpressionStatement",
                  "src": "2974:83:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 180,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 163,
                            "src": "3159:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 181,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 161,
                            "src": "3171:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 178,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "3127:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 179,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isArbitratorWhitelisted",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5152,
                          "src": "3127:31:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3127:51:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206e6f742077686974652d6c6973746564",
                        "id": 183,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3180:29:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9e4a2df3dd496cbd355c52d1b057f5907e9e3a428155e2c5751d0cf90315ce64",
                          "typeString": "literal_string \"arbitrator not white-listed\""
                        },
                        "value": "arbitrator not white-listed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9e4a2df3dd496cbd355c52d1b057f5907e9e3a428155e2c5751d0cf90315ce64",
                          "typeString": "literal_string \"arbitrator not white-listed\""
                        }
                      ],
                      "id": 177,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "3119:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3119:91:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 185,
                  "nodeType": "ExpressionStatement",
                  "src": "3119:91:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 189,
                              "name": "branch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 161,
                              "src": "3253:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 187,
                              "name": "fSystem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43,
                              "src": "3229:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                                "typeString": "contract ForkonomicSystem"
                              }
                            },
                            "id": 188,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "branchTimestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4881,
                            "src": "3229:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) view external returns (uint256)"
                            }
                          },
                          "id": 190,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3229:31:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 198,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 193,
                                "name": "questionId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 47,
                                "src": "3290:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 191,
                                "name": "realityCheck",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63,
                                "src": "3263:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Realitio_$8289",
                                  "typeString": "contract Realitio"
                                }
                              },
                              "id": 192,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getFinalizeTS",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 8223,
                              "src": "3263:26:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint32_$",
                                "typeString": "function (bytes32) view external returns (uint32)"
                              }
                            },
                            "id": 194,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3263:38:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 195,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43,
                                "src": "3304:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 196,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "WINDOWTIMESPAN",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4867,
                              "src": "3304:22:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$",
                                "typeString": "function () view external returns (uint32)"
                              }
                            },
                            "id": 197,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3304:24:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "3263:65:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "3229:99:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6272616e636820697320746f206f6c64",
                        "id": 200,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3330:18:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_210eee9a3beef3029262142e9de5d7518c561b5273d2a573ca204f36aa2b3b0b",
                          "typeString": "literal_string \"branch is to old\""
                        },
                        "value": "branch is to old"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_210eee9a3beef3029262142e9de5d7518c561b5273d2a573ca204f36aa2b3b0b",
                          "typeString": "literal_string \"branch is to old\""
                        }
                      ],
                      "id": 186,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "3221:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3221:128:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 202,
                  "nodeType": "ExpressionStatement",
                  "src": "3221:128:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 203,
                      "name": "outcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 166,
                      "src": "3359:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 207,
                              "name": "questionId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 47,
                              "src": "3410:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 208,
                              "name": "content_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 49,
                              "src": "3422:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 209,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 163,
                              "src": "3436:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 210,
                              "name": "minTimeout",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 59,
                              "src": "3448:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 211,
                              "name": "minBond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 52,
                              "src": "3460:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 205,
                              "name": "realityCheck",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63,
                              "src": "3373:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Realitio_$8289",
                                "typeString": "contract Realitio"
                              }
                            },
                            "id": 206,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getFinalAnswerIfMatches",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7595,
                            "src": "3373:36:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,bytes32,address,uint32,uint256) view external returns (bytes32)"
                            }
                          },
                          "id": 212,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3373:95:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 204,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3369:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int"
                      },
                      "id": 213,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3369:100:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "3359:110:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 215,
                  "nodeType": "ExpressionStatement",
                  "src": "3359:110:0"
                }
              ]
            },
            "documentation": "@dev gets winning event outcome\n @param branch is the branch on which a user wants to know the result",
            "id": 217,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcome",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 164,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 161,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 217,
                  "src": "2795:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 160,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2795:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 163,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 217,
                  "src": "2811:18:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 162,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2811:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2794:36:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 167,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 166,
                  "name": "outcome",
                  "nodeType": "VariableDeclaration",
                  "scope": 217,
                  "src": "2876:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 165,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2876:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2875:13:0"
            },
            "scope": 279,
            "src": "2775:701:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 227,
              "nodeType": "Block",
              "src": "3630:51:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 223,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "3653:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 224,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3653:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 222,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3647:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint8_$",
                        "typeString": "type(uint8)"
                      },
                      "typeName": "uint8"
                    },
                    "id": 225,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3647:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 221,
                  "id": 226,
                  "nodeType": "Return",
                  "src": "3640:34:0"
                }
              ]
            },
            "documentation": "@dev Returns outcome count\n @return Outcome count",
            "id": 228,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 218,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3571:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 220,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 228,
                  "src": "3619:5:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 219,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3619:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3618:7:0"
            },
            "scope": 279,
            "src": "3547:134:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 236,
              "nodeType": "Block",
              "src": "3853:37:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 234,
                    "name": "outcomeTokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 39,
                    "src": "3870:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                      "typeString": "contract OutcomeToken[] storage ref"
                    }
                  },
                  "functionReturnParameters": 233,
                  "id": 235,
                  "nodeType": "Return",
                  "src": "3863:20:0"
                }
              ]
            },
            "documentation": "@dev Returns outcome tokens array\n @return Outcome tokens",
            "id": 237,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 229,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3785:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 233,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 232,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 237,
                  "src": "3833:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_memory_ptr",
                    "typeString": "contract OutcomeToken[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 230,
                      "name": "OutcomeToken",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 1700,
                      "src": "3833:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      }
                    },
                    "id": 231,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3833:14:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage_ptr",
                      "typeString": "contract OutcomeToken[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3832:16:0"
            },
            "scope": 279,
            "src": "3760:130:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 277,
              "nodeType": "Block",
              "src": "4137:221:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 245,
                      "name": "outcomeTokenDistribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 243,
                      "src": "4147:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 249,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "4185:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 250,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4185:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 248,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "4174:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 246,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "4178:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 247,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "4178:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 251,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4174:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "4147:59:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 253,
                  "nodeType": "ExpressionStatement",
                  "src": "4147:59:0"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 274,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 265,
                          "name": "outcomeTokenDistribution",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 243,
                          "src": "4288:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 267,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 266,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 255,
                          "src": "4313:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "nodeType": "IndexAccess",
                        "src": "4288:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 272,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 239,
                            "src": "4345:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 268,
                              "name": "outcomeTokens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39,
                              "src": "4318:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                                "typeString": "contract OutcomeToken[] storage ref"
                              }
                            },
                            "id": 270,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 269,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 255,
                              "src": "4332:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4318:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                              "typeString": "contract OutcomeToken"
                            }
                          },
                          "id": 271,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balanceOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2625,
                          "src": "4318:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                            "typeString": "function (address) view external returns (uint256)"
                          }
                        },
                        "id": 273,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4318:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4288:63:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 275,
                    "nodeType": "ExpressionStatement",
                    "src": "4288:63:0"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 258,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 255,
                      "src": "4234:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 259,
                        "name": "outcomeTokenDistribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 243,
                        "src": "4238:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 260,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4238:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4234:35:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 276,
                  "initializationExpression": {
                    "assignments": [
                      255
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 255,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 278,
                        "src": "4221:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 254,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "4221:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 257,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 256,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4231:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4221:11:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "4271:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 262,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 255,
                        "src": "4271:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 264,
                    "nodeType": "ExpressionStatement",
                    "src": "4271:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "4216:135:0"
                }
              ]
            },
            "documentation": "@dev Returns the amount of outcome tokens held by owner\n @return Outcome token distribution",
            "id": 278,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeTokenDistribution",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 239,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 278,
                  "src": "4040:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 238,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4040:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4039:15:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 244,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 243,
                  "name": "outcomeTokenDistribution",
                  "nodeType": "VariableDeclaration",
                  "scope": 278,
                  "src": "4100:31:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 241,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "4100:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 242,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4100:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4099:33:0"
            },
            "scope": 279,
            "src": "4003:355:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 280,
        "src": "1196:3165:0"
      }
    ],
    "src": "0:4362:0"
  },
  "legacyAST": {
    "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Event.sol",
    "exportedSymbols": {
      "Event": [
        279
      ],
      "EventData": [
        66
      ]
    },
    "id": 280,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:0"
      },
      {
        "absolutePath": "@gnosis.pm/pm-contracts/contracts/Tokens/Token.sol",
        "file": "@gnosis.pm/pm-contracts/contracts/Tokens/Token.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 2704,
        "src": "25:60:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/OutcomeToken.sol",
        "file": "./OutcomeToken.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 1701,
        "src": "86:28:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Proxy.sol",
        "file": "./Proxy.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 1734,
        "src": "115:21:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 6227,
        "src": "137:69:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
        "file": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
        "id": 6,
        "nodeType": "ImportDirective",
        "scope": 280,
        "sourceUnit": 8290,
        "src": "207:69:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 66,
        "linearizedBaseContracts": [
          66
        ],
        "name": "EventData",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 12,
            "name": "OutcomeTokenCreation",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 11,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8,
                  "indexed": false,
                  "name": "outcomeToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 12,
                  "src": "362:25:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                    "typeString": "contract OutcomeToken"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7,
                    "name": "OutcomeToken",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1700,
                    "src": "362:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                      "typeString": "contract OutcomeToken"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10,
                  "indexed": false,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 12,
                  "src": "389:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 9,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "389:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "361:40:0"
            },
            "src": "335:67:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 18,
            "name": "OutcomeTokenSetIssuance",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 17,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14,
                  "indexed": true,
                  "name": "buyer",
                  "nodeType": "VariableDeclaration",
                  "scope": 18,
                  "src": "437:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "437:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16,
                  "indexed": false,
                  "name": "collateralTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18,
                  "src": "460:25:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "460:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "436:50:0"
            },
            "src": "407:80:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 24,
            "name": "OutcomeTokenSetRevocation",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20,
                  "indexed": true,
                  "name": "seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 24,
                  "src": "524:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 19,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "524:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22,
                  "indexed": false,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 24,
                  "src": "548:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "548:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "523:48:0"
            },
            "src": "492:80:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 32,
            "name": "WinningsRedemption",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 31,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26,
                  "indexed": true,
                  "name": "receiver",
                  "nodeType": "VariableDeclaration",
                  "scope": 32,
                  "src": "602:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "602:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28,
                  "indexed": false,
                  "name": "winnings",
                  "nodeType": "VariableDeclaration",
                  "scope": 32,
                  "src": "628:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "628:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 30,
                  "indexed": false,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 32,
                  "src": "643:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 29,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "643:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "601:57:0"
            },
            "src": "577:82:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 36,
            "name": "LogB",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 35,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 34,
                  "indexed": false,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 36,
                  "src": "675:9:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 33,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "675:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "674:11:0"
            },
            "src": "664:22:0"
          },
          {
            "constant": false,
            "id": 39,
            "name": "outcomeTokens",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "722:35:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
              "typeString": "contract OutcomeToken[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 37,
                "name": "OutcomeToken",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1700,
                "src": "722:12:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                  "typeString": "contract OutcomeToken"
                }
              },
              "id": 38,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "722:14:0",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage_ptr",
                "typeString": "contract OutcomeToken[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 41,
            "name": "forkonomicToken",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "765:38:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
              "typeString": "contract ForkonomicToken"
            },
            "typeName": {
              "contractScope": null,
              "id": 40,
              "name": "ForkonomicToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6226,
              "src": "765:15:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                "typeString": "contract ForkonomicToken"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 43,
            "name": "fSystem",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "809:31:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
              "typeString": "contract ForkonomicSystem"
            },
            "typeName": {
              "contractScope": null,
              "id": 42,
              "name": "ForkonomicSystem",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5270,
              "src": "809:16:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                "typeString": "contract ForkonomicSystem"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 45,
            "name": "collateralBranch",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "846:31:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 44,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "846:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 47,
            "name": "questionId",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "883:25:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 46,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "883:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 49,
            "name": "content_hash",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "914:27:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 48,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "914:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 52,
            "name": "minBond",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "947:28:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 50,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "947:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "353030",
              "id": 51,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "972:3:0",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_500_by_1",
                "typeString": "int_const 500"
              },
              "value": "500"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 59,
            "name": "minTimeout",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "981:35:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 53,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "981:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "commonType": {
                "typeIdentifier": "t_rational_86400_by_1",
                "typeString": "int_const 86400"
              },
              "id": 58,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "argumentTypes": null,
                "commonType": {
                  "typeIdentifier": "t_rational_3600_by_1",
                  "typeString": "int_const 3600"
                },
                "id": 56,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "leftExpression": {
                  "argumentTypes": null,
                  "hexValue": "3630",
                  "id": 54,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "1008:2:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_60_by_1",
                    "typeString": "int_const 60"
                  },
                  "value": "60"
                },
                "nodeType": "BinaryOperation",
                "operator": "*",
                "rightExpression": {
                  "argumentTypes": null,
                  "hexValue": "3630",
                  "id": 55,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "1011:2:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_60_by_1",
                    "typeString": "int_const 60"
                  },
                  "value": "60"
                },
                "src": "1008:5:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_3600_by_1",
                  "typeString": "int_const 3600"
                }
              },
              "nodeType": "BinaryOperation",
              "operator": "*",
              "rightExpression": {
                "argumentTypes": null,
                "hexValue": "3234",
                "id": 57,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1014:2:0",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_24_by_1",
                  "typeString": "int_const 24"
                },
                "value": "24"
              },
              "src": "1008:8:0",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_86400_by_1",
                "typeString": "int_const 86400"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 61,
            "name": "openingTs",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "1022:23:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 60,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "1022:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 63,
            "name": "realityCheck",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "1051:21:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Realitio_$8289",
              "typeString": "contract Realitio"
            },
            "typeName": {
              "contractScope": null,
              "id": 62,
              "name": "Realitio",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8289,
              "src": "1051:8:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Realitio_$8289",
                "typeString": "contract Realitio"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 65,
            "name": "outcome",
            "nodeType": "VariableDeclaration",
            "scope": 66,
            "src": "1078:22:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 64,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1078:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          }
        ],
        "scope": 280,
        "src": "279:825:0"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 67,
              "name": "Proxied",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1705,
              "src": "1214:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxied_$1705",
                "typeString": "contract Proxied"
              }
            },
            "id": 68,
            "nodeType": "InheritanceSpecifier",
            "src": "1214:7:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 69,
              "name": "EventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 66,
              "src": "1223:9:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EventData_$66",
                "typeString": "contract EventData"
              }
            },
            "id": 70,
            "nodeType": "InheritanceSpecifier",
            "src": "1223:9:0"
          }
        ],
        "contractDependencies": [
          66,
          1705
        ],
        "contractKind": "contract",
        "documentation": "@title Event contract - Provide basic functionality required by different event types",
        "fullyImplemented": true,
        "id": 279,
        "linearizedBaseContracts": [
          279,
          66,
          1705
        ],
        "name": "Event",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 114,
              "nodeType": "Block",
              "src": "1532:443:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 78,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "1636:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 79,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1636:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 80,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8568,
                            "src": "1648:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Event_$279",
                              "typeString": "contract Event"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 81,
                            "name": "collateralTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 72,
                            "src": "1654:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 82,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "1676:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_contract$_Event_$279",
                              "typeString": "contract Event"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 76,
                            "name": "forkonomicToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "1607:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 77,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5822,
                          "src": "1607:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 83,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1607:86:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e7366657220776173206e6f7420706f737369626c65",
                        "id": 84,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1695:27:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f6ff1ec099c10c17400f80e98435b846aaf762a4c605132d803186bd61ec0ce3",
                          "typeString": "literal_string \"transfer was not possible\""
                        },
                        "value": "transfer was not possible"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f6ff1ec099c10c17400f80e98435b846aaf762a4c605132d803186bd61ec0ce3",
                          "typeString": "literal_string \"transfer was not possible\""
                        }
                      ],
                      "id": 75,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "1599:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 85,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1599:124:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 86,
                  "nodeType": "ExpressionStatement",
                  "src": "1599:124:0"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 102,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8523,
                            "src": "1863:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1863:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 104,
                          "name": "collateralTokenCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 72,
                          "src": "1875:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 98,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "1840:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 100,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 99,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 88,
                            "src": "1854:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1840:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        },
                        "id": 101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "issue",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1666,
                        "src": "1840:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256) external"
                        }
                      },
                      "id": 105,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1840:56:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 106,
                    "nodeType": "ExpressionStatement",
                    "src": "1840:56:0"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 94,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 91,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 88,
                      "src": "1797:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 92,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "1801:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 93,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1801:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1797:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 107,
                  "initializationExpression": {
                    "assignments": [
                      88
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 88,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 115,
                        "src": "1784:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 87,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1784:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 90,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 89,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1794:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1784:11:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 96,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1823:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 95,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 88,
                        "src": "1823:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 97,
                    "nodeType": "ExpressionStatement",
                    "src": "1823:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "1779:117:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 109,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "1935:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1935:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 111,
                        "name": "collateralTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 72,
                        "src": "1947:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 108,
                      "name": "OutcomeTokenSetIssuance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18,
                      "src": "1911:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1911:57:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 113,
                  "nodeType": "EmitStatement",
                  "src": "1906:62:0"
                }
              ]
            },
            "documentation": "@dev Buys equal number of tokens of all outcomes, exchanging collateral tokens and sets of outcome tokens 1:1\n @param collateralTokenCount Number of collateral tokens",
            "id": 115,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "buyAllOutcomes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 73,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 72,
                  "name": "collateralTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 115,
                  "src": "1486:25:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 71,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1486:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1485:27:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 74,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1532:0:0"
            },
            "scope": 279,
            "src": "1462:513:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 158,
              "nodeType": "Block",
              "src": "2226:424:0",
              "statements": [
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 135,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8523,
                            "src": "2383:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 136,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2383:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 137,
                          "name": "outcomeTokenCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 117,
                          "src": "2395:17:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 131,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "2359:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 133,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 132,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 121,
                            "src": "2373:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2359:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        },
                        "id": 134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "revoke",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1699,
                        "src": "2359:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256) external"
                        }
                      },
                      "id": 138,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2359:54:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 139,
                    "nodeType": "ExpressionStatement",
                    "src": "2359:54:0"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 124,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 121,
                      "src": "2316:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 125,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "2320:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 126,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2320:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2316:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 140,
                  "initializationExpression": {
                    "assignments": [
                      121
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 121,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 159,
                        "src": "2303:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 120,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2303:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 123,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2313:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2303:11:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2342:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 128,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 121,
                        "src": "2342:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 130,
                    "nodeType": "ExpressionStatement",
                    "src": "2342:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "2298:115:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 144,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "2504:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2504:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 146,
                            "name": "outcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 117,
                            "src": "2516:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 147,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "2535:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 142,
                            "name": "forkonomicToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "2479:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 143,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5687,
                          "src": "2479:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 148,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2479:73:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e73666572206661696c6564",
                        "id": 149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2554:17:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b",
                          "typeString": "literal_string \"transfer failed\""
                        },
                        "value": "transfer failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b",
                          "typeString": "literal_string \"transfer failed\""
                        }
                      ],
                      "id": 141,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "2471:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2471:101:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 151,
                  "nodeType": "ExpressionStatement",
                  "src": "2471:101:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 153,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "2613:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 154,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2613:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 155,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 117,
                        "src": "2625:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 152,
                      "name": "OutcomeTokenSetRevocation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24,
                      "src": "2587:25:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2587:56:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 157,
                  "nodeType": "EmitStatement",
                  "src": "2582:61:0"
                }
              ]
            },
            "documentation": "@dev Sells equal number of tokens of all outcomes, exchanging collateral tokens and sets of outcome tokens 1:1\n @param outcomeTokenCount Number of outcome tokens",
            "id": 159,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "sellAllOutcomes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 118,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 117,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 159,
                  "src": "2183:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 116,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2183:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2182:24:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 119,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2226:0:0"
            },
            "scope": 279,
            "src": "2158:492:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 216,
              "nodeType": "Block",
              "src": "2893:583:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 171,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "3007:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 172,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 161,
                            "src": "3025:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 169,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "2982:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 170,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isFatherOfBranch",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5269,
                          "src": "2982:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2982:50:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "206e6f74206120666168746572206272616e6368",
                        "id": 174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3034:22:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fecba6b051edc33563935974e82be60cce75dcc936435beab8fbce00486c4643",
                          "typeString": "literal_string \" not a fahter branch\""
                        },
                        "value": " not a fahter branch"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_fecba6b051edc33563935974e82be60cce75dcc936435beab8fbce00486c4643",
                          "typeString": "literal_string \" not a fahter branch\""
                        }
                      ],
                      "id": 168,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "2974:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2974:83:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 176,
                  "nodeType": "ExpressionStatement",
                  "src": "2974:83:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 180,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 163,
                            "src": "3159:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 181,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 161,
                            "src": "3171:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 178,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "3127:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 179,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isArbitratorWhitelisted",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5152,
                          "src": "3127:31:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3127:51:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206e6f742077686974652d6c6973746564",
                        "id": 183,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3180:29:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9e4a2df3dd496cbd355c52d1b057f5907e9e3a428155e2c5751d0cf90315ce64",
                          "typeString": "literal_string \"arbitrator not white-listed\""
                        },
                        "value": "arbitrator not white-listed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9e4a2df3dd496cbd355c52d1b057f5907e9e3a428155e2c5751d0cf90315ce64",
                          "typeString": "literal_string \"arbitrator not white-listed\""
                        }
                      ],
                      "id": 177,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "3119:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3119:91:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 185,
                  "nodeType": "ExpressionStatement",
                  "src": "3119:91:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 189,
                              "name": "branch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 161,
                              "src": "3253:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 187,
                              "name": "fSystem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43,
                              "src": "3229:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                                "typeString": "contract ForkonomicSystem"
                              }
                            },
                            "id": 188,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "branchTimestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4881,
                            "src": "3229:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) view external returns (uint256)"
                            }
                          },
                          "id": 190,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3229:31:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 198,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 193,
                                "name": "questionId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 47,
                                "src": "3290:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 191,
                                "name": "realityCheck",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63,
                                "src": "3263:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Realitio_$8289",
                                  "typeString": "contract Realitio"
                                }
                              },
                              "id": 192,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getFinalizeTS",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 8223,
                              "src": "3263:26:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint32_$",
                                "typeString": "function (bytes32) view external returns (uint32)"
                              }
                            },
                            "id": 194,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3263:38:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 195,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43,
                                "src": "3304:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 196,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "WINDOWTIMESPAN",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4867,
                              "src": "3304:22:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$",
                                "typeString": "function () view external returns (uint32)"
                              }
                            },
                            "id": 197,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3304:24:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "3263:65:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "3229:99:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6272616e636820697320746f206f6c64",
                        "id": 200,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3330:18:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_210eee9a3beef3029262142e9de5d7518c561b5273d2a573ca204f36aa2b3b0b",
                          "typeString": "literal_string \"branch is to old\""
                        },
                        "value": "branch is to old"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_210eee9a3beef3029262142e9de5d7518c561b5273d2a573ca204f36aa2b3b0b",
                          "typeString": "literal_string \"branch is to old\""
                        }
                      ],
                      "id": 186,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "3221:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3221:128:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 202,
                  "nodeType": "ExpressionStatement",
                  "src": "3221:128:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 203,
                      "name": "outcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 166,
                      "src": "3359:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 207,
                              "name": "questionId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 47,
                              "src": "3410:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 208,
                              "name": "content_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 49,
                              "src": "3422:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 209,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 163,
                              "src": "3436:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 210,
                              "name": "minTimeout",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 59,
                              "src": "3448:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 211,
                              "name": "minBond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 52,
                              "src": "3460:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 205,
                              "name": "realityCheck",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63,
                              "src": "3373:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Realitio_$8289",
                                "typeString": "contract Realitio"
                              }
                            },
                            "id": 206,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getFinalAnswerIfMatches",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7595,
                            "src": "3373:36:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,bytes32,address,uint32,uint256) view external returns (bytes32)"
                            }
                          },
                          "id": 212,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3373:95:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 204,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3369:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int"
                      },
                      "id": 213,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3369:100:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "3359:110:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 215,
                  "nodeType": "ExpressionStatement",
                  "src": "3359:110:0"
                }
              ]
            },
            "documentation": "@dev gets winning event outcome\n @param branch is the branch on which a user wants to know the result",
            "id": 217,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcome",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 164,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 161,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 217,
                  "src": "2795:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 160,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2795:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 163,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 217,
                  "src": "2811:18:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 162,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2811:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2794:36:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 167,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 166,
                  "name": "outcome",
                  "nodeType": "VariableDeclaration",
                  "scope": 217,
                  "src": "2876:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 165,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2876:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2875:13:0"
            },
            "scope": 279,
            "src": "2775:701:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 227,
              "nodeType": "Block",
              "src": "3630:51:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 223,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "3653:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 224,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3653:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 222,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3647:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint8_$",
                        "typeString": "type(uint8)"
                      },
                      "typeName": "uint8"
                    },
                    "id": 225,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3647:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 221,
                  "id": 226,
                  "nodeType": "Return",
                  "src": "3640:34:0"
                }
              ]
            },
            "documentation": "@dev Returns outcome count\n @return Outcome count",
            "id": 228,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 218,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3571:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 220,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 228,
                  "src": "3619:5:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 219,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3619:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3618:7:0"
            },
            "scope": 279,
            "src": "3547:134:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 236,
              "nodeType": "Block",
              "src": "3853:37:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 234,
                    "name": "outcomeTokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 39,
                    "src": "3870:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                      "typeString": "contract OutcomeToken[] storage ref"
                    }
                  },
                  "functionReturnParameters": 233,
                  "id": 235,
                  "nodeType": "Return",
                  "src": "3863:20:0"
                }
              ]
            },
            "documentation": "@dev Returns outcome tokens array\n @return Outcome tokens",
            "id": 237,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 229,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3785:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 233,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 232,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 237,
                  "src": "3833:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_memory_ptr",
                    "typeString": "contract OutcomeToken[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 230,
                      "name": "OutcomeToken",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 1700,
                      "src": "3833:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      }
                    },
                    "id": 231,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3833:14:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage_ptr",
                      "typeString": "contract OutcomeToken[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3832:16:0"
            },
            "scope": 279,
            "src": "3760:130:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 277,
              "nodeType": "Block",
              "src": "4137:221:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 245,
                      "name": "outcomeTokenDistribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 243,
                      "src": "4147:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 249,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "4185:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 250,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4185:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 248,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "4174:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 246,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "4178:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 247,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "4178:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 251,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4174:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "4147:59:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 253,
                  "nodeType": "ExpressionStatement",
                  "src": "4147:59:0"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 274,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 265,
                          "name": "outcomeTokenDistribution",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 243,
                          "src": "4288:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 267,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 266,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 255,
                          "src": "4313:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "nodeType": "IndexAccess",
                        "src": "4288:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 272,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 239,
                            "src": "4345:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 268,
                              "name": "outcomeTokens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39,
                              "src": "4318:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                                "typeString": "contract OutcomeToken[] storage ref"
                              }
                            },
                            "id": 270,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 269,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 255,
                              "src": "4332:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4318:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                              "typeString": "contract OutcomeToken"
                            }
                          },
                          "id": 271,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balanceOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2625,
                          "src": "4318:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                            "typeString": "function (address) view external returns (uint256)"
                          }
                        },
                        "id": 273,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4318:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4288:63:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 275,
                    "nodeType": "ExpressionStatement",
                    "src": "4288:63:0"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 258,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 255,
                      "src": "4234:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 259,
                        "name": "outcomeTokenDistribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 243,
                        "src": "4238:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 260,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4238:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4234:35:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 276,
                  "initializationExpression": {
                    "assignments": [
                      255
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 255,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 278,
                        "src": "4221:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 254,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "4221:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 257,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 256,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4231:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4221:11:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "4271:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 262,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 255,
                        "src": "4271:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 264,
                    "nodeType": "ExpressionStatement",
                    "src": "4271:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "4216:135:0"
                }
              ]
            },
            "documentation": "@dev Returns the amount of outcome tokens held by owner\n @return Outcome token distribution",
            "id": 278,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeTokenDistribution",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 239,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 278,
                  "src": "4040:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 238,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4040:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4039:15:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 244,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 243,
                  "name": "outcomeTokenDistribution",
                  "nodeType": "VariableDeclaration",
                  "scope": 278,
                  "src": "4100:31:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 241,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "4100:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 242,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4100:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4099:33:0"
            },
            "scope": 279,
            "src": "4003:355:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 280,
        "src": "1196:3165:0"
      }
    ],
    "src": "0:4362:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-11-11T16:30:48.167Z"
}