{
  "contractName": "ScalarEventData",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "LONG",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "OUTCOME_RANGE",
      "outputs": [
        {
          "name": "",
          "type": "uint24"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "lowerBound",
      "outputs": [
        {
          "name": "",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SHORT",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "upperBound",
      "outputs": [
        {
          "name": "",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610163806100206000396000f30060806040526004361061006c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663561cce0a81146100715780636e5452fe1461009c578063a384d6ff146100c9578063a871da91146100f0578063b09ad8a014610105575b600080fd5b34801561007d57600080fd5b5061008661011a565b6040805160ff9092168252519081900360200190f35b3480156100a857600080fd5b506100b161011f565b6040805162ffffff9092168252519081900360200190f35b3480156100d557600080fd5b506100de610126565b60408051918252519081900360200190f35b3480156100fc57600080fd5b5061008661012c565b34801561011157600080fd5b506100de610131565b600181565b620f424081565b60005481565b600081565b600154815600a165627a7a72305820bdfc8ffc05c15c8ac26cece2f7b62b3979848b35a0ade48ee5ae4af73a46472f0029",
  "deployedBytecode": "0x60806040526004361061006c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663561cce0a81146100715780636e5452fe1461009c578063a384d6ff146100c9578063a871da91146100f0578063b09ad8a014610105575b600080fd5b34801561007d57600080fd5b5061008661011a565b6040805160ff9092168252519081900360200190f35b3480156100a857600080fd5b506100b161011f565b6040805162ffffff9092168252519081900360200190f35b3480156100d557600080fd5b506100de610126565b60408051918252519081900360200190f35b3480156100fc57600080fd5b5061008661012c565b34801561011157600080fd5b506100de610131565b600181565b620f424081565b60005481565b600081565b600154815600a165627a7a72305820bdfc8ffc05c15c8ac26cece2f7b62b3979848b35a0ade48ee5ae4af73a46472f0029",
  "sourceMap": "282:481:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;282:481:8;;;;;;;",
  "deployedSourceMap": "282:481:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;384:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;384:30:8;;;;;;;;;;;;;;;;;;;;;;;420:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;420:46:8;;;;;;;;;;;;;;;;;;;;;;;504:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;504:21:8;;;;;;;;;;;;;;;;;;;;347:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;347:31:8;;;;531:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;531:21:8;;;;384:30;413:1;384:30;:::o;420:46::-;459:7;420:46;:::o;504:21::-;;;;:::o;347:31::-;377:1;347:31;:::o;531:21::-;;;;:::o",
  "source": "pragma solidity ^0.4.24;\nimport \"./Event.sol\";\nimport \"./Proxy.sol\";\nimport \"@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol\";\nimport \"@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol\";\nimport \"@realitio/realitio-contracts/truffle/contracts/Realitio.sol\";\n\n\ncontract ScalarEventData {\n\n    /*\n     *  Constants\n     */\n    uint8 public constant SHORT = 0;\n    uint8 public constant LONG = 1;\n    uint24 public constant OUTCOME_RANGE = 1000000;\n\n    /*\n     *  Storage\n     */\n    int public lowerBound;\n    int public upperBound;\n\n    // user => tokenCount of Short outcomeTokens\n    mapping( address => uint) outcomeTokensCountShort;\n    // user => tokenCount of Long outcomeTokens\n    mapping( address => uint) outcomeTokensCountLong;\n\n}\n\n\ncontract ScalarEventProxy is Proxy, EventData, ScalarEventData {\n\n    /// @dev Contract constructor validates and sets basic event properties\n\n    /// @param _collateralBranch Tokens used as collateral in exchange for outcome tokens\n    /// @param _realityCheck Oracle contract used to resolve the event\n    /// @param _lowerBound Lower bound for event outcome\n    /// @param _upperBound Lower bound for event outcome\n    constructor(\n        address proxied,\n        ForkonomicToken _forkonomicToken,\n        ForkonomicSystem _fSystem,\n        Realitio _realityCheck,\n        bytes32 _collateralBranch,\n        string question_,\n        uint32 openingTs_,\n        uint32  minTimeout_,\n        uint256 templateId_,\n        address arbitrator,\n        int _lowerBound,\n        int _upperBound\n    )\n        Proxy(proxied)\n        public\n    {\n        // Validate input\n        require(address(_forkonomicToken) != 0 && address(_realityCheck) != 0, \"please check the input for the constructor\");\n        require(_collateralBranch != bytes32(0), \" please check the collateralBranch\");\n\n        forkonomicToken = _forkonomicToken;\n        fSystem = _fSystem;\n        collateralBranch = _collateralBranch;\n\n\n        // create question in relaityCheck\n        openingTs = openingTs_;\n        minTimeout = minTimeout_; \n        content_hash = keccak256(abi.encodePacked(templateId_, openingTs_, question_));  \n\n        realityCheck = _realityCheck;\n        questionId = realityCheck.askQuestion(templateId_, question_, arbitrator, minTimeout, openingTs_, 0);\n\n        // Create an outcome token for each outcome\n        // Create LongTokens    \n        OutcomeToken outcomeToken = new OutcomeToken(\"LONG\", string(abi.encodePacked(\"Long Token for Event \", questionId)));\n        outcomeTokens.push(outcomeToken);\n        emit OutcomeTokenCreation(outcomeToken, 1);\n        //create ShortTokens\n        outcomeToken = new OutcomeToken(\"SHRT\", string(abi.encodePacked(\"Short Token for Event \", questionId)));\n        outcomeTokens.push(outcomeToken);\n        emit OutcomeTokenCreation(outcomeToken, 2);\n            \n    \n        // Validate bounds\n        require(_upperBound > _lowerBound, \" bounds are not set correctly\");\n        lowerBound = _lowerBound;\n        upperBound = _upperBound;\n    }\n}\n\n\n/// @title Scalar event contract - Scalar events resolve to a number within a range\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract ScalarEvent is Proxied, EventData, ScalarEventData {\n    using Math for *;\n\n    /*\n     *  Public functions\n     */\n\n    bytes32 constant NULL_HASH = \"\";\n    address constant NULL_ADDRESS = 0x0;\n\n\n    function revokeOutcomeTokens()\n        public\n    {\n        // only possible, if tokens were not yet revoked by this account\n        // if this function has already been used, the tokens needs to be transfered to another account\n        require(outcomeTokensCountShort[msg.sender] == 0 && outcomeTokensCountLong[msg.sender] == 0, \"tokens have already been revoked\");\n        uint shortOutcomeTokenCount = outcomeTokens[SHORT].balanceOf(msg.sender);\n        outcomeTokensCountShort[msg.sender] = shortOutcomeTokenCount;\n        outcomeTokens[SHORT].revoke(msg.sender, shortOutcomeTokenCount);\n        uint longOutcomeTokenCount = outcomeTokens[LONG].balanceOf(msg.sender);\n        outcomeTokensCountLong[msg.sender] = longOutcomeTokenCount;\n        outcomeTokens[LONG].revoke(msg.sender, longOutcomeTokenCount);\n    } \n\n    /// @dev Exchanges sender's winning outcome tokens for collateral tokens\n    /// @return Sender's winnings\n    function redeemWinnings(bytes32 branchForWithdraw, address arbitrator)\n        public\n        returns (uint winnings)\n    {\n\n        uint shortOutcomeTokenCount = outcomeTokensCountShort[msg.sender];\n        uint longOutcomeTokenCount = outcomeTokensCountLong[msg.sender];\n\n        // tokens need to be revoked before winnings can be redeemed\n        require(shortOutcomeTokenCount > 0 || longOutcomeTokenCount > 0, \" first tokens must be revoked\");\n\n        //calculate the winnings\n        int outcome = getOutcome(branchForWithdraw, arbitrator);\n\n        // Outcome is lower than defined lower bound\n        uint24 convertedWinningOutcome;\n        if (outcome < lowerBound)\n            convertedWinningOutcome = 0;\n        // Outcome is higher than defined upper bound\n        else if (outcome > upperBound)\n            convertedWinningOutcome = OUTCOME_RANGE;\n        // Map outcome to outcome range\n        else\n            convertedWinningOutcome = uint24(OUTCOME_RANGE * (outcome - lowerBound) / (upperBound - lowerBound));\n        uint factorShort = OUTCOME_RANGE - convertedWinningOutcome;\n        uint factorLong = OUTCOME_RANGE - factorShort;\n        winnings = (shortOutcomeTokenCount.mul(factorShort).add(longOutcomeTokenCount.mul(factorLong))) / OUTCOME_RANGE;\n\n        // Payout winnings to sender\n        require(!ForkonomicToken(forkonomicToken).hasBoxWithdrawal(msg.sender, NULL_HASH, branchForWithdraw, collateralBranch), \"there had already been a withdrawal (redeemWinnings)\"); \n        require(ForkonomicToken(forkonomicToken).boxTransfer(msg.sender, winnings, branchForWithdraw, NULL_HASH, NULL_HASH), \"transfer went wrong (redeemWinnings)\");\n        require(ForkonomicToken(forkonomicToken).recordBoxWithdrawal(msg.sender, NULL_HASH, winnings, branchForWithdraw), \"withdrawal could not be recorded\");\n           \n        emit WinningsRedemption(msg.sender, winnings, branchForWithdraw);\n    }\n\n    /// @dev Risky operation, deletes data and can safe gas in combination with other function calls\n    /// @return free gas\n    function clearData()\n    public {\n        delete outcomeTokensCountShort[msg.sender];\n        delete outcomeTokensCountLong[msg.sender];\n    }    \n\n    /// @dev Calculates and returns event hash\n    /// @return Event hash\n    function getEventHash()\n        public\n        view\n        returns (bytes32)\n    {\n        return keccak256(abi.encodePacked(collateralBranch, questionId, lowerBound, upperBound));\n    }\n\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.isBranchCreatedAfterTS(realityCheck.getFinalizeTS(questionId), branch), \"branch is to old\");\n\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\n    ",
  "sourcePath": "/home/josojo/reality/tokenized-events/contracts/ScalarEvent.sol",
  "ast": {
    "absolutePath": "/home/josojo/reality/tokenized-events/contracts/ScalarEvent.sol",
    "exportedSymbols": {
      "ScalarEvent": [
        2415
      ],
      "ScalarEventData": [
        1762
      ],
      "ScalarEventProxy": [
        1936
      ]
    },
    "id": 2416,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1735,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:8"
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Event.sol",
        "file": "./Event.sol",
        "id": 1736,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 280,
        "src": "25:21:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Proxy.sol",
        "file": "./Proxy.sol",
        "id": 1737,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 1734,
        "src": "47:21:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "id": 1738,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 6227,
        "src": "69:69:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol",
        "id": 1739,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 5271,
        "src": "139:70:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
        "file": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
        "id": 1740,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 8290,
        "src": "210:69:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1762,
        "linearizedBaseContracts": [
          1762
        ],
        "name": "ScalarEventData",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 1743,
            "name": "SHORT",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "347:31:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 1741,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "347:5:8",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 1742,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "377:1:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1746,
            "name": "LONG",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "384:30:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 1744,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "384:5:8",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 1745,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "413:1:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1749,
            "name": "OUTCOME_RANGE",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "420:46:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint24",
              "typeString": "uint24"
            },
            "typeName": {
              "id": 1747,
              "name": "uint24",
              "nodeType": "ElementaryTypeName",
              "src": "420:6:8",
              "typeDescriptions": {
                "typeIdentifier": "t_uint24",
                "typeString": "uint24"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31303030303030",
              "id": 1748,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "459:7:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000_by_1",
                "typeString": "int_const 1000000"
              },
              "value": "1000000"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1751,
            "name": "lowerBound",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "504:21:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int256",
              "typeString": "int256"
            },
            "typeName": {
              "id": 1750,
              "name": "int",
              "nodeType": "ElementaryTypeName",
              "src": "504:3:8",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1753,
            "name": "upperBound",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "531:21:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int256",
              "typeString": "int256"
            },
            "typeName": {
              "id": 1752,
              "name": "int",
              "nodeType": "ElementaryTypeName",
              "src": "531:3:8",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1757,
            "name": "outcomeTokensCountShort",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "608:49:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 1756,
              "keyType": {
                "id": 1754,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "617:7:8",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "608:25:8",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 1755,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "628:4:8",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1761,
            "name": "outcomeTokensCountLong",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "711:48:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 1760,
              "keyType": {
                "id": 1758,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "720:7:8",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "711:25:8",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 1759,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "731:4:8",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2416,
        "src": "282:481:8"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1763,
              "name": "Proxy",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1733,
              "src": "795:5:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxy_$1733",
                "typeString": "contract Proxy"
              }
            },
            "id": 1764,
            "nodeType": "InheritanceSpecifier",
            "src": "795:5:8"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1765,
              "name": "EventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 66,
              "src": "802:9:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EventData_$66",
                "typeString": "contract EventData"
              }
            },
            "id": 1766,
            "nodeType": "InheritanceSpecifier",
            "src": "802:9:8"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1767,
              "name": "ScalarEventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1762,
              "src": "813:15:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ScalarEventData_$1762",
                "typeString": "contract ScalarEventData"
              }
            },
            "id": 1768,
            "nodeType": "InheritanceSpecifier",
            "src": "813:15:8"
          }
        ],
        "contractDependencies": [
          66,
          1700,
          1705,
          1733,
          1762
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1936,
        "linearizedBaseContracts": [
          1936,
          1762,
          66,
          1733,
          1705
        ],
        "name": "ScalarEventProxy",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 1934,
              "nodeType": "Block",
              "src": "1606:1448:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1803,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1800,
                                "name": "_forkonomicToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1772,
                                "src": "1658:16:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              ],
                              "id": 1799,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1650:7:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1801,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1650:25:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1802,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1679:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1650:30:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1808,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1805,
                                "name": "_realityCheck",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1776,
                                "src": "1692:13:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Realitio_$8289",
                                  "typeString": "contract Realitio"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Realitio_$8289",
                                  "typeString": "contract Realitio"
                                }
                              ],
                              "id": 1804,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1684:7:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1806,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1684:22:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1807,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1710:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1684:27:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1650:61:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "706c6561736520636865636b2074686520696e70757420666f722074686520636f6e7374727563746f72",
                        "id": 1810,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1713:44:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0d4d2f1e645417f66cf71c15e5c20a001d8113204e38dc7f3d5b0a6563d9b1c4",
                          "typeString": "literal_string \"please check the input for the constructor\""
                        },
                        "value": "please check the input for the constructor"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0d4d2f1e645417f66cf71c15e5c20a001d8113204e38dc7f3d5b0a6563d9b1c4",
                          "typeString": "literal_string \"please check the input for the constructor\""
                        }
                      ],
                      "id": 1798,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "1642:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1642:116:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1812,
                  "nodeType": "ExpressionStatement",
                  "src": "1642:116:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 1818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1814,
                          "name": "_collateralBranch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1778,
                          "src": "1776:17:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1816,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1805:1:8",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1815,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1797:7:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 1817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1797:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "1776:31:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20706c6561736520636865636b2074686520636f6c6c61746572616c4272616e6368",
                        "id": 1819,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1809:36:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9f26beeb443ca0d14ad39cba6124f57afbc3fa5814261ec8d9abcffa005145fc",
                          "typeString": "literal_string \" please check the collateralBranch\""
                        },
                        "value": " please check the collateralBranch"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9f26beeb443ca0d14ad39cba6124f57afbc3fa5814261ec8d9abcffa005145fc",
                          "typeString": "literal_string \" please check the collateralBranch\""
                        }
                      ],
                      "id": 1813,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "1768:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1768:78:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1821,
                  "nodeType": "ExpressionStatement",
                  "src": "1768:78:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1824,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1822,
                      "name": "forkonomicToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41,
                      "src": "1857:15:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                        "typeString": "contract ForkonomicToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1823,
                      "name": "_forkonomicToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1772,
                      "src": "1875:16:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                        "typeString": "contract ForkonomicToken"
                      }
                    },
                    "src": "1857:34:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                      "typeString": "contract ForkonomicToken"
                    }
                  },
                  "id": 1825,
                  "nodeType": "ExpressionStatement",
                  "src": "1857:34:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1826,
                      "name": "fSystem",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43,
                      "src": "1901:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                        "typeString": "contract ForkonomicSystem"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1827,
                      "name": "_fSystem",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1774,
                      "src": "1911:8:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                        "typeString": "contract ForkonomicSystem"
                      }
                    },
                    "src": "1901:18:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                      "typeString": "contract ForkonomicSystem"
                    }
                  },
                  "id": 1829,
                  "nodeType": "ExpressionStatement",
                  "src": "1901:18:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1832,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1830,
                      "name": "collateralBranch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45,
                      "src": "1929:16:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1831,
                      "name": "_collateralBranch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1778,
                      "src": "1948:17:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1929:36:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1833,
                  "nodeType": "ExpressionStatement",
                  "src": "1929:36:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1836,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1834,
                      "name": "openingTs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 61,
                      "src": "2020:9:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1835,
                      "name": "openingTs_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1782,
                      "src": "2032:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "2020:22:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 1837,
                  "nodeType": "ExpressionStatement",
                  "src": "2020:22:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1838,
                      "name": "minTimeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 59,
                      "src": "2052:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1839,
                      "name": "minTimeout_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1784,
                      "src": "2065:11:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "2052:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 1841,
                  "nodeType": "ExpressionStatement",
                  "src": "2052:24:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1842,
                      "name": "content_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 49,
                      "src": "2087:12:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1846,
                              "name": "templateId_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1786,
                              "src": "2129:11:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1847,
                              "name": "openingTs_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1782,
                              "src": "2142:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1848,
                              "name": "question_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1780,
                              "src": "2154:9:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1844,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8510,
                              "src": "2112:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 1845,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2112:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 1849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2112:52:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 1843,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8517,
                        "src": "2102:9:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 1850,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2102:63:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2087:78:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1852,
                  "nodeType": "ExpressionStatement",
                  "src": "2087:78:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1855,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1853,
                      "name": "realityCheck",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63,
                      "src": "2178:12:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Realitio_$8289",
                        "typeString": "contract Realitio"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1854,
                      "name": "_realityCheck",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1776,
                      "src": "2193:13:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Realitio_$8289",
                        "typeString": "contract Realitio"
                      }
                    },
                    "src": "2178:28:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Realitio_$8289",
                      "typeString": "contract Realitio"
                    }
                  },
                  "id": 1856,
                  "nodeType": "ExpressionStatement",
                  "src": "2178:28:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1867,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1857,
                      "name": "questionId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 47,
                      "src": "2216:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1860,
                          "name": "templateId_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1786,
                          "src": "2254:11:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1861,
                          "name": "question_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1780,
                          "src": "2267:9:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1862,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1788,
                          "src": "2278:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1863,
                          "name": "minTimeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 59,
                          "src": "2290:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1864,
                          "name": "openingTs_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1782,
                          "src": "2302:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2314:1:8",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1858,
                          "name": "realityCheck",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63,
                          "src": "2229:12:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Realitio_$8289",
                            "typeString": "contract Realitio"
                          }
                        },
                        "id": 1859,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "askQuestion",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6912,
                        "src": "2229:24:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                          "typeString": "function (uint256,string memory,address,uint32,uint32,uint256) payable external returns (bytes32)"
                        }
                      },
                      "id": 1866,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2229:87:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2216:100:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1868,
                  "nodeType": "ExpressionStatement",
                  "src": "2216:100:8"
                },
                {
                  "assignments": [
                    1870
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1870,
                      "name": "outcomeToken",
                      "nodeType": "VariableDeclaration",
                      "scope": 1935,
                      "src": "2412:25:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1869,
                        "name": "OutcomeToken",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1700,
                        "src": "2412:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1882,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "4c4f4e47",
                        "id": 1873,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2457:6:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_26207b3d79cb8a2f4d7984d34034720f053ed770a9f512147f4ea54e18ede2c3",
                          "typeString": "literal_string \"LONG\""
                        },
                        "value": "LONG"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "4c6f6e6720546f6b656e20666f72204576656e7420",
                                "id": 1877,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2489:23:8",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_92d38c3b48a01ca4538e06f63134c07d8543c9d84c9f413f0f651f69cd50779b",
                                  "typeString": "literal_string \"Long Token for Event \""
                                },
                                "value": "Long Token for Event "
                              },
                              {
                                "argumentTypes": null,
                                "id": 1878,
                                "name": "questionId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 47,
                                "src": "2514:10:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_92d38c3b48a01ca4538e06f63134c07d8543c9d84c9f413f0f651f69cd50779b",
                                  "typeString": "literal_string \"Long Token for Event \""
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1875,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8510,
                                "src": "2472:3:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 1876,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2472:16:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 1879,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2472:53:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 1874,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2465:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 1880,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2465:61:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_26207b3d79cb8a2f4d7984d34034720f053ed770a9f512147f4ea54e18ede2c3",
                          "typeString": "literal_string \"LONG\""
                        },
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 1872,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2440:16:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_OutcomeToken_$1700_$",
                        "typeString": "function (string memory,string memory) returns (contract OutcomeToken)"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1871,
                        "name": "OutcomeToken",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1700,
                        "src": "2444:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      }
                    },
                    "id": 1881,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2440:87:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                      "typeString": "contract OutcomeToken"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2412:115:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1886,
                        "name": "outcomeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1870,
                        "src": "2556:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1883,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "2537:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 1885,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2537:18:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_OutcomeToken_$1700_$returns$_t_uint256_$",
                        "typeString": "function (contract OutcomeToken) returns (uint256)"
                      }
                    },
                    "id": 1887,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2537:32:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1888,
                  "nodeType": "ExpressionStatement",
                  "src": "2537:32:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1890,
                        "name": "outcomeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1870,
                        "src": "2605:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 1891,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2619:1:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        },
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 1889,
                      "name": "OutcomeTokenCreation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12,
                      "src": "2584:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_OutcomeToken_$1700_$_t_uint8_$returns$__$",
                        "typeString": "function (contract OutcomeToken,uint8)"
                      }
                    },
                    "id": 1892,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2584:37:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1893,
                  "nodeType": "EmitStatement",
                  "src": "2579:42:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1894,
                      "name": "outcomeToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1870,
                      "src": "2660:12:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "53485254",
                          "id": 1897,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2692:6:8",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_3de1d1b15b69b1e0e8e604ce34e9b0790a960bb84438f49ee81abb7750859020",
                            "typeString": "literal_string \"SHRT\""
                          },
                          "value": "SHRT"
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "53686f727420546f6b656e20666f72204576656e7420",
                                  "id": 1901,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2724:24:8",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_0d8560f0fd3a313882929a8b5e6a2e53bbd0160a4355a86a5638db852e2eb8fc",
                                    "typeString": "literal_string \"Short Token for Event \""
                                  },
                                  "value": "Short Token for Event "
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1902,
                                  "name": "questionId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 47,
                                  "src": "2750:10:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_0d8560f0fd3a313882929a8b5e6a2e53bbd0160a4355a86a5638db852e2eb8fc",
                                    "typeString": "literal_string \"Short Token for Event \""
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1899,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8510,
                                  "src": "2707:3:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 1900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "2707:16:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 1903,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2707:54:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 1898,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2700:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                              "typeString": "type(string storage pointer)"
                            },
                            "typeName": "string"
                          },
                          "id": 1904,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2700:62:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_3de1d1b15b69b1e0e8e604ce34e9b0790a960bb84438f49ee81abb7750859020",
                            "typeString": "literal_string \"SHRT\""
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 1896,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "2675:16:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_OutcomeToken_$1700_$",
                          "typeString": "function (string memory,string memory) returns (contract OutcomeToken)"
                        },
                        "typeName": {
                          "contractScope": null,
                          "id": 1895,
                          "name": "OutcomeToken",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 1700,
                          "src": "2679:12:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        }
                      },
                      "id": 1905,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2675:88:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      }
                    },
                    "src": "2660:103:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                      "typeString": "contract OutcomeToken"
                    }
                  },
                  "id": 1907,
                  "nodeType": "ExpressionStatement",
                  "src": "2660:103:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1911,
                        "name": "outcomeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1870,
                        "src": "2792:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1908,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "2773:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 1910,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2773:18:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_OutcomeToken_$1700_$returns$_t_uint256_$",
                        "typeString": "function (contract OutcomeToken) returns (uint256)"
                      }
                    },
                    "id": 1912,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2773:32:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1913,
                  "nodeType": "ExpressionStatement",
                  "src": "2773:32:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1915,
                        "name": "outcomeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1870,
                        "src": "2841:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 1916,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2855:1:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        },
                        {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        }
                      ],
                      "id": 1914,
                      "name": "OutcomeTokenCreation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12,
                      "src": "2820:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_OutcomeToken_$1700_$_t_uint8_$returns$__$",
                        "typeString": "function (contract OutcomeToken,uint8)"
                      }
                    },
                    "id": 1917,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2820:37:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1918,
                  "nodeType": "EmitStatement",
                  "src": "2815:42:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 1922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1920,
                          "name": "_upperBound",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1792,
                          "src": "2920:11:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1921,
                          "name": "_lowerBound",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1790,
                          "src": "2934:11:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "src": "2920:25:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20626f756e647320617265206e6f742073657420636f72726563746c79",
                        "id": 1923,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2947:31:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_06b8859393451eaca994d122b6fa9f011c68e86b4bd2280369436a5fb3a3ee18",
                          "typeString": "literal_string \" bounds are not set correctly\""
                        },
                        "value": " bounds are not set correctly"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_06b8859393451eaca994d122b6fa9f011c68e86b4bd2280369436a5fb3a3ee18",
                          "typeString": "literal_string \" bounds are not set correctly\""
                        }
                      ],
                      "id": 1919,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "2912:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1924,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2912:67:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1925,
                  "nodeType": "ExpressionStatement",
                  "src": "2912:67:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1928,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1926,
                      "name": "lowerBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1751,
                      "src": "2989:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1927,
                      "name": "_lowerBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1790,
                      "src": "3002:11:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "2989:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1929,
                  "nodeType": "ExpressionStatement",
                  "src": "2989:24:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1930,
                      "name": "upperBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1753,
                      "src": "3023:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1931,
                      "name": "_upperBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1792,
                      "src": "3036:11:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "3023:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1933,
                  "nodeType": "ExpressionStatement",
                  "src": "3023:24:8"
                }
              ]
            },
            "documentation": "@dev Contract constructor validates and sets basic event properties\n @param _collateralBranch Tokens used as collateral in exchange for outcome tokens\n @param _realityCheck Oracle contract used to resolve the event\n @param _lowerBound Lower bound for event outcome\n @param _upperBound Lower bound for event outcome",
            "id": 1935,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1795,
                    "name": "proxied",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1770,
                    "src": "1578:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 1796,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1794,
                  "name": "Proxy",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1733,
                  "src": "1572:5:8",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Proxy_$1733_$",
                    "typeString": "type(contract Proxy)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1572:14:8"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1793,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1770,
                  "name": "proxied",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1209:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1769,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1209:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1772,
                  "name": "_forkonomicToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1234:32:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                    "typeString": "contract ForkonomicToken"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1771,
                    "name": "ForkonomicToken",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6226,
                    "src": "1234:15:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                      "typeString": "contract ForkonomicToken"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1774,
                  "name": "_fSystem",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1276:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                    "typeString": "contract ForkonomicSystem"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1773,
                    "name": "ForkonomicSystem",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5270,
                    "src": "1276:16:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                      "typeString": "contract ForkonomicSystem"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1776,
                  "name": "_realityCheck",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1311:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Realitio_$8289",
                    "typeString": "contract Realitio"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1775,
                    "name": "Realitio",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8289,
                    "src": "1311:8:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Realitio_$8289",
                      "typeString": "contract Realitio"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1778,
                  "name": "_collateralBranch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1343:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1777,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1343:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1780,
                  "name": "question_",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1378:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1779,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1378:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1782,
                  "name": "openingTs_",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1404:17:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 1781,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1404:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1784,
                  "name": "minTimeout_",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1431:19:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 1783,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1431:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1786,
                  "name": "templateId_",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1460:19:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1785,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1460:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1788,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1489:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1787,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1489:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1790,
                  "name": "_lowerBound",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1517:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 1789,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1517:3:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1792,
                  "name": "_upperBound",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1542:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 1791,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1542:3:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1199:364:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 1797,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1606:0:8"
            },
            "scope": 1936,
            "src": "1188:1866:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2416,
        "src": "766:2290:8"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1937,
              "name": "Proxied",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1705,
              "src": "3214:7:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxied_$1705",
                "typeString": "contract Proxied"
              }
            },
            "id": 1938,
            "nodeType": "InheritanceSpecifier",
            "src": "3214:7:8"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1939,
              "name": "EventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 66,
              "src": "3223:9:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EventData_$66",
                "typeString": "contract EventData"
              }
            },
            "id": 1940,
            "nodeType": "InheritanceSpecifier",
            "src": "3223:9:8"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1941,
              "name": "ScalarEventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1762,
              "src": "3234:15:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ScalarEventData_$1762",
                "typeString": "contract ScalarEventData"
              }
            },
            "id": 1942,
            "nodeType": "InheritanceSpecifier",
            "src": "3234:15:8"
          }
        ],
        "contractDependencies": [
          66,
          1705,
          1762
        ],
        "contractKind": "contract",
        "documentation": "@title Scalar event contract - Scalar events resolve to a number within a range\n @author Stefan George - <stefan@gnosis.pm>",
        "fullyImplemented": true,
        "id": 2415,
        "linearizedBaseContracts": [
          2415,
          1762,
          66,
          1705
        ],
        "name": "ScalarEvent",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1944,
            "libraryName": {
              "contractScope": null,
              "id": 1943,
              "name": "Math",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3954,
              "src": "3262:4:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Math_$3954",
                "typeString": "library Math"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "3256:17:8",
            "typeName": null
          },
          {
            "constant": true,
            "id": 1947,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 2415,
            "src": "3320:31:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1945,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "3320:7:8",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "",
              "id": 1946,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3349:2:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                "typeString": "literal_string \"\""
              },
              "value": ""
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1950,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 2415,
            "src": "3357:35:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1948,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "3357:7:8",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307830",
              "id": 1949,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3389:3:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0x0"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2022,
              "nodeType": "Block",
              "src": "3450:766:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1966,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1954,
                              "name": "outcomeTokensCountShort",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1757,
                              "src": "3645:23:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 1957,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1955,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8523,
                                "src": "3669:3:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1956,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3669:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3645:35:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1958,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3684:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3645:40:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1960,
                              "name": "outcomeTokensCountLong",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1761,
                              "src": "3689:22:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 1963,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1961,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8523,
                                "src": "3712:3:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1962,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3712:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3689:34:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1964,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3727:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3689:39:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3645:83:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "746f6b656e73206861766520616c7265616479206265656e207265766f6b6564",
                        "id": 1967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3730:34:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d610c6d7ab78b9056a2d5b55a04d648d00406ac2e1c3d98133d8dca3b0b51a70",
                          "typeString": "literal_string \"tokens have already been revoked\""
                        },
                        "value": "tokens have already been revoked"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d610c6d7ab78b9056a2d5b55a04d648d00406ac2e1c3d98133d8dca3b0b51a70",
                          "typeString": "literal_string \"tokens have already been revoked\""
                        }
                      ],
                      "id": 1953,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "3637:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3637:128:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1969,
                  "nodeType": "ExpressionStatement",
                  "src": "3637:128:8"
                },
                {
                  "assignments": [
                    1971
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1971,
                      "name": "shortOutcomeTokenCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "3775:27:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1970,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3775:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1979,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1976,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "3836:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3836:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1972,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "3805:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 1974,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1973,
                          "name": "SHORT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1743,
                          "src": "3819:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3805:20:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 1975,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "balanceOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2625,
                      "src": "3805:30:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 1978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3805:42:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3775:72:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1980,
                        "name": "outcomeTokensCountShort",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1757,
                        "src": "3857:23:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 1983,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1981,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "3881:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1982,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3881:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3857:35:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1984,
                      "name": "shortOutcomeTokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1971,
                      "src": "3895:22:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3857:60:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1986,
                  "nodeType": "ExpressionStatement",
                  "src": "3857:60:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1991,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "3955:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1992,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3955:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1993,
                        "name": "shortOutcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1971,
                        "src": "3967:22:8",
                        "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": 1987,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "3927:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 1989,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1988,
                          "name": "SHORT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1743,
                          "src": "3941:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3927:20:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 1990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revoke",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1699,
                      "src": "3927:27:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 1994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3927:63:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1995,
                  "nodeType": "ExpressionStatement",
                  "src": "3927:63:8"
                },
                {
                  "assignments": [
                    1997
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1997,
                      "name": "longOutcomeTokenCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "4000:26:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1996,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4000:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2005,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2002,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "4059:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2003,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4059:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1998,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "4029:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 2000,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1999,
                          "name": "LONG",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1746,
                          "src": "4043:4:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4029:19:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 2001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "balanceOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2625,
                      "src": "4029:29:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 2004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4029:41:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4000:70:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2011,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2006,
                        "name": "outcomeTokensCountLong",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1761,
                        "src": "4080:22:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 2009,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2007,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "4103:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2008,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4103:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4080:34:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2010,
                      "name": "longOutcomeTokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1997,
                      "src": "4117:21:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4080:58:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2012,
                  "nodeType": "ExpressionStatement",
                  "src": "4080:58:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2017,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "4175:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4175:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2019,
                        "name": "longOutcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1997,
                        "src": "4187:21:8",
                        "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": 2013,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "4148:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 2015,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2014,
                          "name": "LONG",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1746,
                          "src": "4162:4:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4148:19:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 2016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revoke",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1699,
                      "src": "4148:26:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 2020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4148:61:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2021,
                  "nodeType": "ExpressionStatement",
                  "src": "4148:61:8"
                }
              ]
            },
            "documentation": null,
            "id": 2023,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "revokeOutcomeTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1951,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3428:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 1952,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3450:0:8"
            },
            "scope": 2415,
            "src": "3400:816:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2178,
              "nodeType": "Block",
              "src": "4456:1793:8",
              "statements": [
                {
                  "assignments": [
                    2033
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2033,
                      "name": "shortOutcomeTokenCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "4467:27:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2032,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4467:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2038,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2034,
                      "name": "outcomeTokensCountShort",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1757,
                      "src": "4497:23:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 2037,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2035,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8523,
                        "src": "4521:3:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2036,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4521:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4497:35:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4467:65:8"
                },
                {
                  "assignments": [
                    2040
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2040,
                      "name": "longOutcomeTokenCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "4542:26:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2039,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4542:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2045,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2041,
                      "name": "outcomeTokensCountLong",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1761,
                      "src": "4571:22:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 2044,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2042,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8523,
                        "src": "4594:3:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4594:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4571:34:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4542:63:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2053,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2049,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2047,
                            "name": "shortOutcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2033,
                            "src": "4693:22:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2048,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4718:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4693:26:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2052,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2050,
                            "name": "longOutcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2040,
                            "src": "4723:21:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2051,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4747:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4723:25:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4693:55:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20666972737420746f6b656e73206d757374206265207265766f6b6564",
                        "id": 2054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4750:31:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6c986cdeeb733aed2450e610d2f5bd4464d09b0f74eb8baf952a020a906f5903",
                          "typeString": "literal_string \" first tokens must be revoked\""
                        },
                        "value": " first tokens must be revoked"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6c986cdeeb733aed2450e610d2f5bd4464d09b0f74eb8baf952a020a906f5903",
                          "typeString": "literal_string \" first tokens must be revoked\""
                        }
                      ],
                      "id": 2046,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "4685:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4685:97:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2056,
                  "nodeType": "ExpressionStatement",
                  "src": "4685:97:8"
                },
                {
                  "assignments": [
                    2058
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2058,
                      "name": "outcome",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "4826:11:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 2057,
                        "name": "int",
                        "nodeType": "ElementaryTypeName",
                        "src": "4826:3:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2063,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2060,
                        "name": "branchForWithdraw",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2025,
                        "src": "4851:17:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2061,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2027,
                        "src": "4870:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2059,
                      "name": "getOutcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2353,
                      "src": "4840:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_int256_$",
                        "typeString": "function (bytes32,address) view returns (int256)"
                      }
                    },
                    "id": 2062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4840:41:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4826:55:8"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2065,
                      "name": "convertedWinningOutcome",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "4945:30:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      },
                      "typeName": {
                        "id": 2064,
                        "name": "uint24",
                        "nodeType": "ElementaryTypeName",
                        "src": "4945:6:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2066,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4945:30:8"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 2069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2067,
                      "name": "outcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "4989:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2068,
                      "name": "lowerBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1751,
                      "src": "4999:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "4989:20:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 2076,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2074,
                        "name": "outcome",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2058,
                        "src": "5123:7:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2075,
                        "name": "upperBound",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1753,
                        "src": "5133:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "src": "5123:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 2081,
                          "name": "convertedWinningOutcome",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2065,
                          "src": "5263:23:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 2093,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                "id": 2088,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2083,
                                  "name": "OUTCOME_RANGE",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1749,
                                  "src": "5296:13:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint24",
                                    "typeString": "uint24"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "id": 2086,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 2084,
                                        "name": "outcome",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2058,
                                        "src": "5313:7:8",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 2085,
                                        "name": "lowerBound",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1751,
                                        "src": "5323:10:8",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "src": "5313:20:8",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    }
                                  ],
                                  "id": 2087,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "5312:22:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "src": "5296:38:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    },
                                    "id": 2091,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 2089,
                                      "name": "upperBound",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1753,
                                      "src": "5338:10:8",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "id": 2090,
                                      "name": "lowerBound",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1751,
                                      "src": "5351:10:8",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    },
                                    "src": "5338:23:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "id": 2092,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "5337:25:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "src": "5296:66:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "id": 2082,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5289:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint24_$",
                              "typeString": "type(uint24)"
                            },
                            "typeName": "uint24"
                          },
                          "id": 2094,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5289:74:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "src": "5263:100:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "id": 2096,
                      "nodeType": "ExpressionStatement",
                      "src": "5263:100:8"
                    },
                    "id": 2097,
                    "nodeType": "IfStatement",
                    "src": "5119:244:8",
                    "trueBody": {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 2077,
                          "name": "convertedWinningOutcome",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2065,
                          "src": "5157:23:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 2078,
                          "name": "OUTCOME_RANGE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1749,
                          "src": "5183:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "src": "5157:39:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "id": 2080,
                      "nodeType": "ExpressionStatement",
                      "src": "5157:39:8"
                    }
                  },
                  "id": 2098,
                  "nodeType": "IfStatement",
                  "src": "4985:378:8",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2072,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 2070,
                        "name": "convertedWinningOutcome",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2065,
                        "src": "5023:23:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2071,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5049:1:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "5023:27:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "id": 2073,
                    "nodeType": "ExpressionStatement",
                    "src": "5023:27:8"
                  }
                },
                {
                  "assignments": [
                    2100
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2100,
                      "name": "factorShort",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "5373:16:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2099,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5373:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2104,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    },
                    "id": 2103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2101,
                      "name": "OUTCOME_RANGE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1749,
                      "src": "5392:13:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2102,
                      "name": "convertedWinningOutcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "5408:23:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "5392:39:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5373:58:8"
                },
                {
                  "assignments": [
                    2106
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2106,
                      "name": "factorLong",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "5441:15:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2105,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5441:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2110,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2109,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2107,
                      "name": "OUTCOME_RANGE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1749,
                      "src": "5459:13:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2108,
                      "name": "factorShort",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2100,
                      "src": "5475:11:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5459:27:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5441:45:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2111,
                      "name": "winnings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2030,
                      "src": "5496:8:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2124,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2119,
                                    "name": "factorLong",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2106,
                                    "src": "5578:10:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2117,
                                    "name": "longOutcomeTokenCount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2040,
                                    "src": "5552:21:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 2118,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mul",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3802,
                                  "src": "5552:25:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) view returns (uint256)"
                                  }
                                },
                                "id": 2120,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5552:37:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2114,
                                    "name": "factorShort",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2100,
                                    "src": "5535:11:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2112,
                                    "name": "shortOutcomeTokenCount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2033,
                                    "src": "5508:22:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 2113,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mul",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3802,
                                  "src": "5508:26:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) view returns (uint256)"
                                  }
                                },
                                "id": 2115,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5508:39:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2116,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3760,
                              "src": "5508:43:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) view returns (uint256)"
                              }
                            },
                            "id": 2121,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5508:82:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 2122,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5507:84:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "/",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2123,
                        "name": "OUTCOME_RANGE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1749,
                        "src": "5594:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "src": "5507:100:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5496:111:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2126,
                  "nodeType": "ExpressionStatement",
                  "src": "5496:111:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2138,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "5663:110:8",
                        "subExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2132,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8523,
                                "src": "5714:3:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2133,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5714:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2134,
                              "name": "NULL_HASH",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1947,
                              "src": "5726:9:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2135,
                              "name": "branchForWithdraw",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2025,
                              "src": "5737:17:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2136,
                              "name": "collateralBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45,
                              "src": "5756:16:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2129,
                                  "name": "forkonomicToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 41,
                                  "src": "5680:15:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                    "typeString": "contract ForkonomicToken"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                    "typeString": "contract ForkonomicToken"
                                  }
                                ],
                                "id": 2128,
                                "name": "ForkonomicToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6226,
                                "src": "5664:15:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_ForkonomicToken_$6226_$",
                                  "typeString": "type(contract ForkonomicToken)"
                                }
                              },
                              "id": 2130,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5664:32:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 2131,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hasBoxWithdrawal",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6102,
                            "src": "5664:49:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,bytes32,bytes32,bytes32) view external returns (bool)"
                            }
                          },
                          "id": 2137,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5664:109:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74686572652068616420616c7265616479206265656e2061207769746864726177616c202872656465656d57696e6e696e677329",
                        "id": 2139,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5775:54:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_56cfb69b8e7891c4eddd43f085180a60b2a4a502235091a578e70123652df711",
                          "typeString": "literal_string \"there had already been a withdrawal (redeemWinnings)\""
                        },
                        "value": "there had already been a withdrawal (redeemWinnings)"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_56cfb69b8e7891c4eddd43f085180a60b2a4a502235091a578e70123652df711",
                          "typeString": "literal_string \"there had already been a withdrawal (redeemWinnings)\""
                        }
                      ],
                      "id": 2127,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "5655:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5655:175:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2141,
                  "nodeType": "ExpressionStatement",
                  "src": "5655:175:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2147,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "5894:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2148,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5894:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2149,
                            "name": "winnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2030,
                            "src": "5906:8:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2150,
                            "name": "branchForWithdraw",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2025,
                            "src": "5916:17:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2151,
                            "name": "NULL_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1947,
                            "src": "5935:9:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2152,
                            "name": "NULL_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1947,
                            "src": "5946:9:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2144,
                                "name": "forkonomicToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 41,
                                "src": "5865:15:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              ],
                              "id": 2143,
                              "name": "ForkonomicToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6226,
                              "src": "5849:15:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ForkonomicToken_$6226_$",
                                "typeString": "type(contract ForkonomicToken)"
                              }
                            },
                            "id": 2145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5849:32:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 2146,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "boxTransfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5799,
                          "src": "5849:44:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32,bytes32,bytes32) external returns (bool)"
                          }
                        },
                        "id": 2153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5849:107:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e736665722077656e742077726f6e67202872656465656d57696e6e696e677329",
                        "id": 2154,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5958:38:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_30ab301b8c958be2646a2ca2ee783e9ed3caab5fca8091f92ad5b998f0e620ae",
                          "typeString": "literal_string \"transfer went wrong (redeemWinnings)\""
                        },
                        "value": "transfer went wrong (redeemWinnings)"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_30ab301b8c958be2646a2ca2ee783e9ed3caab5fca8091f92ad5b998f0e620ae",
                          "typeString": "literal_string \"transfer went wrong (redeemWinnings)\""
                        }
                      ],
                      "id": 2142,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "5841:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5841:156:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2156,
                  "nodeType": "ExpressionStatement",
                  "src": "5841:156:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2162,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "6068:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2163,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6068:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2164,
                            "name": "NULL_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1947,
                            "src": "6080:9:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2165,
                            "name": "winnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2030,
                            "src": "6091:8:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2166,
                            "name": "branchForWithdraw",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2025,
                            "src": "6101:17:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2159,
                                "name": "forkonomicToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 41,
                                "src": "6031:15:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              ],
                              "id": 2158,
                              "name": "ForkonomicToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6226,
                              "src": "6015:15:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ForkonomicToken_$6226_$",
                                "typeString": "type(contract ForkonomicToken)"
                              }
                            },
                            "id": 2160,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6015:32:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 2161,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "recordBoxWithdrawal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6047,
                          "src": "6015:52:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,bytes32,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 2167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6015:104:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7769746864726177616c20636f756c64206e6f74206265207265636f72646564",
                        "id": 2168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6121:34:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7b7081635c008d8f1bd7f934ccc2f04b3d3e6017bd031213d1da4fd63c0f05d3",
                          "typeString": "literal_string \"withdrawal could not be recorded\""
                        },
                        "value": "withdrawal could not be recorded"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7b7081635c008d8f1bd7f934ccc2f04b3d3e6017bd031213d1da4fd63c0f05d3",
                          "typeString": "literal_string \"withdrawal could not be recorded\""
                        }
                      ],
                      "id": 2157,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "6007:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6007:149:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2170,
                  "nodeType": "ExpressionStatement",
                  "src": "6007:149:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2172,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "6202:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6202:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2174,
                        "name": "winnings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2030,
                        "src": "6214:8:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2175,
                        "name": "branchForWithdraw",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2025,
                        "src": "6224:17:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2171,
                      "name": "WinningsRedemption",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 32,
                      "src": "6183:18:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 2176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6183:59:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2177,
                  "nodeType": "EmitStatement",
                  "src": "6178:64:8"
                }
              ]
            },
            "documentation": "@dev Exchanges sender's winning outcome tokens for collateral tokens\n @return Sender's winnings",
            "id": 2179,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "redeemWinnings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2028,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2025,
                  "name": "branchForWithdraw",
                  "nodeType": "VariableDeclaration",
                  "scope": 2179,
                  "src": "4358:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2024,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4358:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2027,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2179,
                  "src": "4385:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4385:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4357:47:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2031,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2030,
                  "name": "winnings",
                  "nodeType": "VariableDeclaration",
                  "scope": 2179,
                  "src": "4437:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2029,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4437:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4436:15:8"
            },
            "scope": 2415,
            "src": "4334:1915:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2194,
              "nodeType": "Block",
              "src": "6413:110:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "6423:42:8",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2182,
                        "name": "outcomeTokensCountShort",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1757,
                        "src": "6430:23:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 2185,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2183,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "6454:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2184,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6454:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6430:35:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2187,
                  "nodeType": "ExpressionStatement",
                  "src": "6423:42:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "6475:41:8",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2188,
                        "name": "outcomeTokensCountLong",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1761,
                        "src": "6482:22:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 2191,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2189,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "6505:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6505:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6482:34:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2193,
                  "nodeType": "ExpressionStatement",
                  "src": "6475:41:8"
                }
              ]
            },
            "documentation": "@dev Risky operation, deletes data and can safe gas in combination with other function calls\n @return free gas",
            "id": 2195,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "clearData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2180,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6399:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2181,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6413:0:8"
            },
            "scope": 2415,
            "src": "6381:142:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2210,
              "nodeType": "Block",
              "src": "6689:105:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2203,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "6733:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2204,
                            "name": "questionId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 47,
                            "src": "6751:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2205,
                            "name": "lowerBound",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1751,
                            "src": "6763:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2206,
                            "name": "upperBound",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1753,
                            "src": "6775:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2201,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8510,
                            "src": "6716:3:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2202,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6716:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2207,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6716:70:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2200,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8517,
                      "src": "6706:9:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6706:81:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2199,
                  "id": 2209,
                  "nodeType": "Return",
                  "src": "6699:88:8"
                }
              ]
            },
            "documentation": "@dev Calculates and returns event hash\n @return Event hash",
            "id": 2211,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getEventHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6628:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2198,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2211,
                  "src": "6676:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6676:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6675:9:8"
            },
            "scope": 2415,
            "src": "6607:187:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2255,
              "nodeType": "Block",
              "src": "7093:443:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2219,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "7197:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2220,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7197:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2221,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8574,
                            "src": "7209:4:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2415",
                              "typeString": "contract ScalarEvent"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2222,
                            "name": "collateralTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2213,
                            "src": "7215:20:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2223,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "7237:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2415",
                              "typeString": "contract ScalarEvent"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2217,
                            "name": "forkonomicToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "7168:15:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 2218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5822,
                          "src": "7168:28:8",
                          "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": 2224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7168:86:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e7366657220776173206e6f7420706f737369626c65",
                        "id": 2225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7256:27:8",
                        "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": 2216,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "7160:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7160:124:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2227,
                  "nodeType": "ExpressionStatement",
                  "src": "7160:124:8"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2243,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8523,
                            "src": "7424:3:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2244,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7424:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2245,
                          "name": "collateralTokenCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2213,
                          "src": "7436:20:8",
                          "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": 2239,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "7401:13:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 2241,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2240,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2229,
                            "src": "7415:1:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "7401:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        },
                        "id": 2242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "issue",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1666,
                        "src": "7401:22:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256) external"
                        }
                      },
                      "id": 2246,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7401:56:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2247,
                    "nodeType": "ExpressionStatement",
                    "src": "7401:56:8"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2232,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2229,
                      "src": "7358:1:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2233,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "7362:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 2234,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7362:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7358:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2248,
                  "initializationExpression": {
                    "assignments": [
                      2229
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2229,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2256,
                        "src": "7345:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 2228,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "7345:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2231,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2230,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7355:1:8",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7345:11:8"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2237,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7384:3:8",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2236,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2229,
                        "src": "7384:1:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 2238,
                    "nodeType": "ExpressionStatement",
                    "src": "7384:3:8"
                  },
                  "nodeType": "ForStatement",
                  "src": "7340:117:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2250,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "7496:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2251,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7496:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2252,
                        "name": "collateralTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2213,
                        "src": "7508:20:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2249,
                      "name": "OutcomeTokenSetIssuance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18,
                      "src": "7472:23:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 2253,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7472:57:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2254,
                  "nodeType": "EmitStatement",
                  "src": "7467:62:8"
                }
              ]
            },
            "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": 2256,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "buyAllOutcomes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2214,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2213,
                  "name": "collateralTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2256,
                  "src": "7047:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2212,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7047:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7046:27:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2215,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7093:0:8"
            },
            "scope": 2415,
            "src": "7023:513:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2299,
              "nodeType": "Block",
              "src": "7787:424:8",
              "statements": [
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2276,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8523,
                            "src": "7944:3:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2277,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7944:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2278,
                          "name": "outcomeTokenCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2258,
                          "src": "7956:17:8",
                          "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": 2272,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "7920:13:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 2274,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2273,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2262,
                            "src": "7934:1:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "7920:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        },
                        "id": 2275,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "revoke",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1699,
                        "src": "7920:23:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256) external"
                        }
                      },
                      "id": 2279,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7920:54:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2280,
                    "nodeType": "ExpressionStatement",
                    "src": "7920:54:8"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2268,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2265,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2262,
                      "src": "7877:1:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2266,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "7881:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 2267,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7881:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7877:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2281,
                  "initializationExpression": {
                    "assignments": [
                      2262
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2262,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2300,
                        "src": "7864:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 2261,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "7864:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2264,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7874:1:8",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7864:11:8"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2270,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7903:3:8",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2269,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2262,
                        "src": "7903:1:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 2271,
                    "nodeType": "ExpressionStatement",
                    "src": "7903:3:8"
                  },
                  "nodeType": "ForStatement",
                  "src": "7859:115:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2285,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "8065:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2286,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "8065:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2287,
                            "name": "outcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2258,
                            "src": "8077:17:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2288,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "8096:16:8",
                            "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": 2283,
                            "name": "forkonomicToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "8040:15:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 2284,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5687,
                          "src": "8040:24:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 2289,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8040:73:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e73666572206661696c6564",
                        "id": 2290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8115:17:8",
                        "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": 2282,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "8032:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8032:101:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2292,
                  "nodeType": "ExpressionStatement",
                  "src": "8032:101:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2294,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "8174:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2295,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8174:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2296,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2258,
                        "src": "8186:17:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2293,
                      "name": "OutcomeTokenSetRevocation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24,
                      "src": "8148:25:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 2297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8148:56:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2298,
                  "nodeType": "EmitStatement",
                  "src": "8143:61:8"
                }
              ]
            },
            "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": 2300,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "sellAllOutcomes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2258,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2300,
                  "src": "7744:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2257,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7744:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7743:24:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2260,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7787:0:8"
            },
            "scope": 2415,
            "src": "7719:492:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2352,
              "nodeType": "Block",
              "src": "8454:563:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2312,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "8568:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2313,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2302,
                            "src": "8586:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2310,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "8543:7:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 2311,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isFatherOfBranch",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5269,
                          "src": "8543:24:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 2314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8543:50:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "206e6f74206120666168746572206272616e6368",
                        "id": 2315,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8595:22:8",
                        "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": 2309,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "8535:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8535:83:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2317,
                  "nodeType": "ExpressionStatement",
                  "src": "8535:83:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2321,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2304,
                            "src": "8720:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2322,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2302,
                            "src": "8732:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2319,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "8688:7:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 2320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isArbitratorWhitelisted",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5152,
                          "src": "8688:31:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 2323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8688:51:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206e6f742077686974652d6c6973746564",
                        "id": 2324,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8741:29:8",
                        "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": 2318,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "8680:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2325,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8680:91:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2326,
                  "nodeType": "ExpressionStatement",
                  "src": "8680:91:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2332,
                                "name": "questionId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 47,
                                "src": "8848:10:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2330,
                                "name": "realityCheck",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63,
                                "src": "8821:12:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Realitio_$8289",
                                  "typeString": "contract Realitio"
                                }
                              },
                              "id": 2331,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getFinalizeTS",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 8223,
                              "src": "8821:26:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint32_$",
                                "typeString": "function (bytes32) view external returns (uint32)"
                              }
                            },
                            "id": 2333,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8821:38:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2334,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2302,
                            "src": "8861:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2328,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "8790:7:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 2329,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isBranchCreatedAfterTS",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5215,
                          "src": "8790:30:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (uint256,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 2335,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8790:78:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6272616e636820697320746f206f6c64",
                        "id": 2336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8870:18:8",
                        "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": 2327,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "8782:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8782:107:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2338,
                  "nodeType": "ExpressionStatement",
                  "src": "8782:107:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2339,
                      "name": "outcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2307,
                      "src": "8900:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2343,
                              "name": "questionId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 47,
                              "src": "8951:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2344,
                              "name": "content_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 49,
                              "src": "8963:12:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2345,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2304,
                              "src": "8977:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2346,
                              "name": "minTimeout",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 59,
                              "src": "8989:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2347,
                              "name": "minBond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 52,
                              "src": "9001:7:8",
                              "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": 2341,
                              "name": "realityCheck",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63,
                              "src": "8914:12:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Realitio_$8289",
                                "typeString": "contract Realitio"
                              }
                            },
                            "id": 2342,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getFinalAnswerIfMatches",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7595,
                            "src": "8914:36:8",
                            "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": 2348,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8914:95:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8910:3:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int"
                      },
                      "id": 2349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8910:100:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "8900:110:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 2351,
                  "nodeType": "ExpressionStatement",
                  "src": "8900:110:8"
                }
              ]
            },
            "documentation": "@dev gets winning event outcome\n @param branch is the branch on which a user wants to know the result",
            "id": 2353,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcome",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2302,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "8356:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2301,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8356:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2304,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "8372:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2303,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8372:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8355:36:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2307,
                  "name": "outcome",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "8437:11:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 2306,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "8437:3:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8436:13:8"
            },
            "scope": 2415,
            "src": "8336:681:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2363,
              "nodeType": "Block",
              "src": "9171:51:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2359,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "9194:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 2360,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "9194:20:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2358,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9188:5:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint8_$",
                        "typeString": "type(uint8)"
                      },
                      "typeName": "uint8"
                    },
                    "id": 2361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9188:27:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 2357,
                  "id": 2362,
                  "nodeType": "Return",
                  "src": "9181:34:8"
                }
              ]
            },
            "documentation": "@dev Returns outcome count\n @return Outcome count",
            "id": 2364,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9112:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2357,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2356,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2364,
                  "src": "9160:5:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2355,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "9160:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9159:7:8"
            },
            "scope": 2415,
            "src": "9088:134:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2372,
              "nodeType": "Block",
              "src": "9394:37:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2370,
                    "name": "outcomeTokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 39,
                    "src": "9411:13:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                      "typeString": "contract OutcomeToken[] storage ref"
                    }
                  },
                  "functionReturnParameters": 2369,
                  "id": 2371,
                  "nodeType": "Return",
                  "src": "9404:20:8"
                }
              ]
            },
            "documentation": "@dev Returns outcome tokens array\n @return Outcome tokens",
            "id": 2373,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2365,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9326:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2369,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2368,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2373,
                  "src": "9374:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_memory_ptr",
                    "typeString": "contract OutcomeToken[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 2366,
                      "name": "OutcomeToken",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 1700,
                      "src": "9374:12:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      }
                    },
                    "id": 2367,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9374:14:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage_ptr",
                      "typeString": "contract OutcomeToken[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9373:16:8"
            },
            "scope": 2415,
            "src": "9301:130:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2413,
              "nodeType": "Block",
              "src": "9678:221:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2381,
                      "name": "outcomeTokenDistribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2379,
                      "src": "9688:24:8",
                      "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": 2385,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "9726:13:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 2386,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9726:20:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "9715:10:8",
                        "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": 2382,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "9719:4:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 2383,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "9719:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 2387,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9715:32:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "9688:59:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 2389,
                  "nodeType": "ExpressionStatement",
                  "src": "9688:59:8"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2410,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2401,
                          "name": "outcomeTokenDistribution",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2379,
                          "src": "9829:24:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 2403,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2402,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2391,
                          "src": "9854:1:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "nodeType": "IndexAccess",
                        "src": "9829:27:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2408,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2375,
                            "src": "9886:5:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2404,
                              "name": "outcomeTokens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39,
                              "src": "9859:13:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                                "typeString": "contract OutcomeToken[] storage ref"
                              }
                            },
                            "id": 2406,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2405,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2391,
                              "src": "9873:1:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "9859:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                              "typeString": "contract OutcomeToken"
                            }
                          },
                          "id": 2407,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balanceOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2625,
                          "src": "9859:26:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                            "typeString": "function (address) view external returns (uint256)"
                          }
                        },
                        "id": 2409,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9859:33:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "9829:63:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2411,
                    "nodeType": "ExpressionStatement",
                    "src": "9829:63:8"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2397,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2394,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2391,
                      "src": "9775:1:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2395,
                        "name": "outcomeTokenDistribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2379,
                        "src": "9779:24:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 2396,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9779:31:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9775:35:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2412,
                  "initializationExpression": {
                    "assignments": [
                      2391
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2391,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2414,
                        "src": "9762:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 2390,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "9762:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2393,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2392,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9772:1:8",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9762:11:8"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2399,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9812:3:8",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2398,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2391,
                        "src": "9812:1:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 2400,
                    "nodeType": "ExpressionStatement",
                    "src": "9812:3:8"
                  },
                  "nodeType": "ForStatement",
                  "src": "9757:135:8"
                }
              ]
            },
            "documentation": "@dev Returns the amount of outcome tokens held by owner\n @return Outcome token distribution",
            "id": 2414,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeTokenDistribution",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2375,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2414,
                  "src": "9581:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2374,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9581:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9580:15:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2379,
                  "name": "outcomeTokenDistribution",
                  "nodeType": "VariableDeclaration",
                  "scope": 2414,
                  "src": "9641:31:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2377,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "9641:4:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2378,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9641:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9640:33:8"
            },
            "scope": 2415,
            "src": "9544:355:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2416,
        "src": "3190:6712:8"
      }
    ],
    "src": "0:9908:8"
  },
  "legacyAST": {
    "absolutePath": "/home/josojo/reality/tokenized-events/contracts/ScalarEvent.sol",
    "exportedSymbols": {
      "ScalarEvent": [
        2415
      ],
      "ScalarEventData": [
        1762
      ],
      "ScalarEventProxy": [
        1936
      ]
    },
    "id": 2416,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1735,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:8"
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Event.sol",
        "file": "./Event.sol",
        "id": 1736,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 280,
        "src": "25:21:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Proxy.sol",
        "file": "./Proxy.sol",
        "id": 1737,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 1734,
        "src": "47:21:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "id": 1738,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 6227,
        "src": "69:69:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol",
        "id": 1739,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 5271,
        "src": "139:70:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
        "file": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
        "id": 1740,
        "nodeType": "ImportDirective",
        "scope": 2416,
        "sourceUnit": 8290,
        "src": "210:69:8",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1762,
        "linearizedBaseContracts": [
          1762
        ],
        "name": "ScalarEventData",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 1743,
            "name": "SHORT",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "347:31:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 1741,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "347:5:8",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 1742,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "377:1:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1746,
            "name": "LONG",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "384:30:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 1744,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "384:5:8",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 1745,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "413:1:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1749,
            "name": "OUTCOME_RANGE",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "420:46:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint24",
              "typeString": "uint24"
            },
            "typeName": {
              "id": 1747,
              "name": "uint24",
              "nodeType": "ElementaryTypeName",
              "src": "420:6:8",
              "typeDescriptions": {
                "typeIdentifier": "t_uint24",
                "typeString": "uint24"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31303030303030",
              "id": 1748,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "459:7:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000_by_1",
                "typeString": "int_const 1000000"
              },
              "value": "1000000"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1751,
            "name": "lowerBound",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "504:21:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int256",
              "typeString": "int256"
            },
            "typeName": {
              "id": 1750,
              "name": "int",
              "nodeType": "ElementaryTypeName",
              "src": "504:3:8",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1753,
            "name": "upperBound",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "531:21:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int256",
              "typeString": "int256"
            },
            "typeName": {
              "id": 1752,
              "name": "int",
              "nodeType": "ElementaryTypeName",
              "src": "531:3:8",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1757,
            "name": "outcomeTokensCountShort",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "608:49:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 1756,
              "keyType": {
                "id": 1754,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "617:7:8",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "608:25:8",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 1755,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "628:4:8",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1761,
            "name": "outcomeTokensCountLong",
            "nodeType": "VariableDeclaration",
            "scope": 1762,
            "src": "711:48:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 1760,
              "keyType": {
                "id": 1758,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "720:7:8",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "711:25:8",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 1759,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "731:4:8",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2416,
        "src": "282:481:8"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1763,
              "name": "Proxy",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1733,
              "src": "795:5:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxy_$1733",
                "typeString": "contract Proxy"
              }
            },
            "id": 1764,
            "nodeType": "InheritanceSpecifier",
            "src": "795:5:8"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1765,
              "name": "EventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 66,
              "src": "802:9:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EventData_$66",
                "typeString": "contract EventData"
              }
            },
            "id": 1766,
            "nodeType": "InheritanceSpecifier",
            "src": "802:9:8"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1767,
              "name": "ScalarEventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1762,
              "src": "813:15:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ScalarEventData_$1762",
                "typeString": "contract ScalarEventData"
              }
            },
            "id": 1768,
            "nodeType": "InheritanceSpecifier",
            "src": "813:15:8"
          }
        ],
        "contractDependencies": [
          66,
          1700,
          1705,
          1733,
          1762
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1936,
        "linearizedBaseContracts": [
          1936,
          1762,
          66,
          1733,
          1705
        ],
        "name": "ScalarEventProxy",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 1934,
              "nodeType": "Block",
              "src": "1606:1448:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1803,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1800,
                                "name": "_forkonomicToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1772,
                                "src": "1658:16:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              ],
                              "id": 1799,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1650:7:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1801,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1650:25:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1802,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1679:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1650:30:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1808,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1805,
                                "name": "_realityCheck",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1776,
                                "src": "1692:13:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Realitio_$8289",
                                  "typeString": "contract Realitio"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Realitio_$8289",
                                  "typeString": "contract Realitio"
                                }
                              ],
                              "id": 1804,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1684:7:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1806,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1684:22:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1807,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1710:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1684:27:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1650:61:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "706c6561736520636865636b2074686520696e70757420666f722074686520636f6e7374727563746f72",
                        "id": 1810,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1713:44:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0d4d2f1e645417f66cf71c15e5c20a001d8113204e38dc7f3d5b0a6563d9b1c4",
                          "typeString": "literal_string \"please check the input for the constructor\""
                        },
                        "value": "please check the input for the constructor"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0d4d2f1e645417f66cf71c15e5c20a001d8113204e38dc7f3d5b0a6563d9b1c4",
                          "typeString": "literal_string \"please check the input for the constructor\""
                        }
                      ],
                      "id": 1798,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "1642:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1642:116:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1812,
                  "nodeType": "ExpressionStatement",
                  "src": "1642:116:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 1818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1814,
                          "name": "_collateralBranch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1778,
                          "src": "1776:17:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1816,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1805:1:8",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1815,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1797:7:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 1817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1797:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "1776:31:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20706c6561736520636865636b2074686520636f6c6c61746572616c4272616e6368",
                        "id": 1819,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1809:36:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9f26beeb443ca0d14ad39cba6124f57afbc3fa5814261ec8d9abcffa005145fc",
                          "typeString": "literal_string \" please check the collateralBranch\""
                        },
                        "value": " please check the collateralBranch"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9f26beeb443ca0d14ad39cba6124f57afbc3fa5814261ec8d9abcffa005145fc",
                          "typeString": "literal_string \" please check the collateralBranch\""
                        }
                      ],
                      "id": 1813,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "1768:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1768:78:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1821,
                  "nodeType": "ExpressionStatement",
                  "src": "1768:78:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1824,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1822,
                      "name": "forkonomicToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41,
                      "src": "1857:15:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                        "typeString": "contract ForkonomicToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1823,
                      "name": "_forkonomicToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1772,
                      "src": "1875:16:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                        "typeString": "contract ForkonomicToken"
                      }
                    },
                    "src": "1857:34:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                      "typeString": "contract ForkonomicToken"
                    }
                  },
                  "id": 1825,
                  "nodeType": "ExpressionStatement",
                  "src": "1857:34:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1826,
                      "name": "fSystem",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43,
                      "src": "1901:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                        "typeString": "contract ForkonomicSystem"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1827,
                      "name": "_fSystem",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1774,
                      "src": "1911:8:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                        "typeString": "contract ForkonomicSystem"
                      }
                    },
                    "src": "1901:18:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                      "typeString": "contract ForkonomicSystem"
                    }
                  },
                  "id": 1829,
                  "nodeType": "ExpressionStatement",
                  "src": "1901:18:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1832,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1830,
                      "name": "collateralBranch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45,
                      "src": "1929:16:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1831,
                      "name": "_collateralBranch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1778,
                      "src": "1948:17:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1929:36:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1833,
                  "nodeType": "ExpressionStatement",
                  "src": "1929:36:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1836,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1834,
                      "name": "openingTs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 61,
                      "src": "2020:9:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1835,
                      "name": "openingTs_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1782,
                      "src": "2032:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "2020:22:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 1837,
                  "nodeType": "ExpressionStatement",
                  "src": "2020:22:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1838,
                      "name": "minTimeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 59,
                      "src": "2052:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1839,
                      "name": "minTimeout_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1784,
                      "src": "2065:11:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "2052:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 1841,
                  "nodeType": "ExpressionStatement",
                  "src": "2052:24:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1842,
                      "name": "content_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 49,
                      "src": "2087:12:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1846,
                              "name": "templateId_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1786,
                              "src": "2129:11:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1847,
                              "name": "openingTs_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1782,
                              "src": "2142:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1848,
                              "name": "question_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1780,
                              "src": "2154:9:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1844,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8510,
                              "src": "2112:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 1845,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2112:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 1849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2112:52:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 1843,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8517,
                        "src": "2102:9:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 1850,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2102:63:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2087:78:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1852,
                  "nodeType": "ExpressionStatement",
                  "src": "2087:78:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1855,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1853,
                      "name": "realityCheck",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63,
                      "src": "2178:12:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Realitio_$8289",
                        "typeString": "contract Realitio"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1854,
                      "name": "_realityCheck",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1776,
                      "src": "2193:13:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Realitio_$8289",
                        "typeString": "contract Realitio"
                      }
                    },
                    "src": "2178:28:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Realitio_$8289",
                      "typeString": "contract Realitio"
                    }
                  },
                  "id": 1856,
                  "nodeType": "ExpressionStatement",
                  "src": "2178:28:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1867,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1857,
                      "name": "questionId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 47,
                      "src": "2216:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1860,
                          "name": "templateId_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1786,
                          "src": "2254:11:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1861,
                          "name": "question_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1780,
                          "src": "2267:9:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1862,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1788,
                          "src": "2278:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1863,
                          "name": "minTimeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 59,
                          "src": "2290:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1864,
                          "name": "openingTs_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1782,
                          "src": "2302:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2314:1:8",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1858,
                          "name": "realityCheck",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63,
                          "src": "2229:12:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Realitio_$8289",
                            "typeString": "contract Realitio"
                          }
                        },
                        "id": 1859,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "askQuestion",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6912,
                        "src": "2229:24:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                          "typeString": "function (uint256,string memory,address,uint32,uint32,uint256) payable external returns (bytes32)"
                        }
                      },
                      "id": 1866,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2229:87:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2216:100:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1868,
                  "nodeType": "ExpressionStatement",
                  "src": "2216:100:8"
                },
                {
                  "assignments": [
                    1870
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1870,
                      "name": "outcomeToken",
                      "nodeType": "VariableDeclaration",
                      "scope": 1935,
                      "src": "2412:25:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1869,
                        "name": "OutcomeToken",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1700,
                        "src": "2412:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1882,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "4c4f4e47",
                        "id": 1873,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2457:6:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_26207b3d79cb8a2f4d7984d34034720f053ed770a9f512147f4ea54e18ede2c3",
                          "typeString": "literal_string \"LONG\""
                        },
                        "value": "LONG"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "4c6f6e6720546f6b656e20666f72204576656e7420",
                                "id": 1877,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2489:23:8",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_92d38c3b48a01ca4538e06f63134c07d8543c9d84c9f413f0f651f69cd50779b",
                                  "typeString": "literal_string \"Long Token for Event \""
                                },
                                "value": "Long Token for Event "
                              },
                              {
                                "argumentTypes": null,
                                "id": 1878,
                                "name": "questionId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 47,
                                "src": "2514:10:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_92d38c3b48a01ca4538e06f63134c07d8543c9d84c9f413f0f651f69cd50779b",
                                  "typeString": "literal_string \"Long Token for Event \""
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1875,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8510,
                                "src": "2472:3:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 1876,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2472:16:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 1879,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2472:53:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 1874,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2465:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 1880,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2465:61:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_26207b3d79cb8a2f4d7984d34034720f053ed770a9f512147f4ea54e18ede2c3",
                          "typeString": "literal_string \"LONG\""
                        },
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 1872,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2440:16:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_OutcomeToken_$1700_$",
                        "typeString": "function (string memory,string memory) returns (contract OutcomeToken)"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1871,
                        "name": "OutcomeToken",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1700,
                        "src": "2444:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      }
                    },
                    "id": 1881,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2440:87:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                      "typeString": "contract OutcomeToken"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2412:115:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1886,
                        "name": "outcomeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1870,
                        "src": "2556:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1883,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "2537:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 1885,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2537:18:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_OutcomeToken_$1700_$returns$_t_uint256_$",
                        "typeString": "function (contract OutcomeToken) returns (uint256)"
                      }
                    },
                    "id": 1887,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2537:32:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1888,
                  "nodeType": "ExpressionStatement",
                  "src": "2537:32:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1890,
                        "name": "outcomeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1870,
                        "src": "2605:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 1891,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2619:1:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        },
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 1889,
                      "name": "OutcomeTokenCreation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12,
                      "src": "2584:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_OutcomeToken_$1700_$_t_uint8_$returns$__$",
                        "typeString": "function (contract OutcomeToken,uint8)"
                      }
                    },
                    "id": 1892,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2584:37:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1893,
                  "nodeType": "EmitStatement",
                  "src": "2579:42:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1894,
                      "name": "outcomeToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1870,
                      "src": "2660:12:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "53485254",
                          "id": 1897,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2692:6:8",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_3de1d1b15b69b1e0e8e604ce34e9b0790a960bb84438f49ee81abb7750859020",
                            "typeString": "literal_string \"SHRT\""
                          },
                          "value": "SHRT"
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "53686f727420546f6b656e20666f72204576656e7420",
                                  "id": 1901,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2724:24:8",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_0d8560f0fd3a313882929a8b5e6a2e53bbd0160a4355a86a5638db852e2eb8fc",
                                    "typeString": "literal_string \"Short Token for Event \""
                                  },
                                  "value": "Short Token for Event "
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1902,
                                  "name": "questionId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 47,
                                  "src": "2750:10:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_0d8560f0fd3a313882929a8b5e6a2e53bbd0160a4355a86a5638db852e2eb8fc",
                                    "typeString": "literal_string \"Short Token for Event \""
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1899,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8510,
                                  "src": "2707:3:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 1900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "2707:16:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 1903,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2707:54:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 1898,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2700:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                              "typeString": "type(string storage pointer)"
                            },
                            "typeName": "string"
                          },
                          "id": 1904,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2700:62:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_3de1d1b15b69b1e0e8e604ce34e9b0790a960bb84438f49ee81abb7750859020",
                            "typeString": "literal_string \"SHRT\""
                          },
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 1896,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "2675:16:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_OutcomeToken_$1700_$",
                          "typeString": "function (string memory,string memory) returns (contract OutcomeToken)"
                        },
                        "typeName": {
                          "contractScope": null,
                          "id": 1895,
                          "name": "OutcomeToken",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 1700,
                          "src": "2679:12:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        }
                      },
                      "id": 1905,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2675:88:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      }
                    },
                    "src": "2660:103:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                      "typeString": "contract OutcomeToken"
                    }
                  },
                  "id": 1907,
                  "nodeType": "ExpressionStatement",
                  "src": "2660:103:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1911,
                        "name": "outcomeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1870,
                        "src": "2792:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1908,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "2773:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 1910,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2773:18:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_OutcomeToken_$1700_$returns$_t_uint256_$",
                        "typeString": "function (contract OutcomeToken) returns (uint256)"
                      }
                    },
                    "id": 1912,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2773:32:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1913,
                  "nodeType": "ExpressionStatement",
                  "src": "2773:32:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1915,
                        "name": "outcomeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1870,
                        "src": "2841:12:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 1916,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2855:1:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        },
                        {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        }
                      ],
                      "id": 1914,
                      "name": "OutcomeTokenCreation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12,
                      "src": "2820:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_OutcomeToken_$1700_$_t_uint8_$returns$__$",
                        "typeString": "function (contract OutcomeToken,uint8)"
                      }
                    },
                    "id": 1917,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2820:37:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1918,
                  "nodeType": "EmitStatement",
                  "src": "2815:42:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 1922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1920,
                          "name": "_upperBound",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1792,
                          "src": "2920:11:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1921,
                          "name": "_lowerBound",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1790,
                          "src": "2934:11:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "src": "2920:25:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20626f756e647320617265206e6f742073657420636f72726563746c79",
                        "id": 1923,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2947:31:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_06b8859393451eaca994d122b6fa9f011c68e86b4bd2280369436a5fb3a3ee18",
                          "typeString": "literal_string \" bounds are not set correctly\""
                        },
                        "value": " bounds are not set correctly"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_06b8859393451eaca994d122b6fa9f011c68e86b4bd2280369436a5fb3a3ee18",
                          "typeString": "literal_string \" bounds are not set correctly\""
                        }
                      ],
                      "id": 1919,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "2912:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1924,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2912:67:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1925,
                  "nodeType": "ExpressionStatement",
                  "src": "2912:67:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1928,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1926,
                      "name": "lowerBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1751,
                      "src": "2989:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1927,
                      "name": "_lowerBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1790,
                      "src": "3002:11:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "2989:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1929,
                  "nodeType": "ExpressionStatement",
                  "src": "2989:24:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1930,
                      "name": "upperBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1753,
                      "src": "3023:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1931,
                      "name": "_upperBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1792,
                      "src": "3036:11:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "3023:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1933,
                  "nodeType": "ExpressionStatement",
                  "src": "3023:24:8"
                }
              ]
            },
            "documentation": "@dev Contract constructor validates and sets basic event properties\n @param _collateralBranch Tokens used as collateral in exchange for outcome tokens\n @param _realityCheck Oracle contract used to resolve the event\n @param _lowerBound Lower bound for event outcome\n @param _upperBound Lower bound for event outcome",
            "id": 1935,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1795,
                    "name": "proxied",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1770,
                    "src": "1578:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 1796,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1794,
                  "name": "Proxy",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1733,
                  "src": "1572:5:8",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Proxy_$1733_$",
                    "typeString": "type(contract Proxy)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1572:14:8"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1793,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1770,
                  "name": "proxied",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1209:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1769,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1209:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1772,
                  "name": "_forkonomicToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1234:32:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                    "typeString": "contract ForkonomicToken"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1771,
                    "name": "ForkonomicToken",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6226,
                    "src": "1234:15:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                      "typeString": "contract ForkonomicToken"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1774,
                  "name": "_fSystem",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1276:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                    "typeString": "contract ForkonomicSystem"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1773,
                    "name": "ForkonomicSystem",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5270,
                    "src": "1276:16:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                      "typeString": "contract ForkonomicSystem"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1776,
                  "name": "_realityCheck",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1311:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Realitio_$8289",
                    "typeString": "contract Realitio"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1775,
                    "name": "Realitio",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8289,
                    "src": "1311:8:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Realitio_$8289",
                      "typeString": "contract Realitio"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1778,
                  "name": "_collateralBranch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1343:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1777,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1343:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1780,
                  "name": "question_",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1378:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1779,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1378:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1782,
                  "name": "openingTs_",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1404:17:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 1781,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1404:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1784,
                  "name": "minTimeout_",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1431:19:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 1783,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1431:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1786,
                  "name": "templateId_",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1460:19:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1785,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1460:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1788,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1489:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1787,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1489:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1790,
                  "name": "_lowerBound",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1517:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 1789,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1517:3:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1792,
                  "name": "_upperBound",
                  "nodeType": "VariableDeclaration",
                  "scope": 1935,
                  "src": "1542:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 1791,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1542:3:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1199:364:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 1797,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1606:0:8"
            },
            "scope": 1936,
            "src": "1188:1866:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2416,
        "src": "766:2290:8"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1937,
              "name": "Proxied",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1705,
              "src": "3214:7:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxied_$1705",
                "typeString": "contract Proxied"
              }
            },
            "id": 1938,
            "nodeType": "InheritanceSpecifier",
            "src": "3214:7:8"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1939,
              "name": "EventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 66,
              "src": "3223:9:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EventData_$66",
                "typeString": "contract EventData"
              }
            },
            "id": 1940,
            "nodeType": "InheritanceSpecifier",
            "src": "3223:9:8"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1941,
              "name": "ScalarEventData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1762,
              "src": "3234:15:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ScalarEventData_$1762",
                "typeString": "contract ScalarEventData"
              }
            },
            "id": 1942,
            "nodeType": "InheritanceSpecifier",
            "src": "3234:15:8"
          }
        ],
        "contractDependencies": [
          66,
          1705,
          1762
        ],
        "contractKind": "contract",
        "documentation": "@title Scalar event contract - Scalar events resolve to a number within a range\n @author Stefan George - <stefan@gnosis.pm>",
        "fullyImplemented": true,
        "id": 2415,
        "linearizedBaseContracts": [
          2415,
          1762,
          66,
          1705
        ],
        "name": "ScalarEvent",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1944,
            "libraryName": {
              "contractScope": null,
              "id": 1943,
              "name": "Math",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3954,
              "src": "3262:4:8",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Math_$3954",
                "typeString": "library Math"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "3256:17:8",
            "typeName": null
          },
          {
            "constant": true,
            "id": 1947,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 2415,
            "src": "3320:31:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1945,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "3320:7:8",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "",
              "id": 1946,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3349:2:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                "typeString": "literal_string \"\""
              },
              "value": ""
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1950,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 2415,
            "src": "3357:35:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1948,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "3357:7:8",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307830",
              "id": 1949,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3389:3:8",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0x0"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2022,
              "nodeType": "Block",
              "src": "3450:766:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1966,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1954,
                              "name": "outcomeTokensCountShort",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1757,
                              "src": "3645:23:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 1957,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1955,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8523,
                                "src": "3669:3:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1956,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3669:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3645:35:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1958,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3684:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3645:40:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1960,
                              "name": "outcomeTokensCountLong",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1761,
                              "src": "3689:22:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 1963,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1961,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8523,
                                "src": "3712:3:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1962,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3712:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3689:34:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1964,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3727:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3689:39:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3645:83:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "746f6b656e73206861766520616c7265616479206265656e207265766f6b6564",
                        "id": 1967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3730:34:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d610c6d7ab78b9056a2d5b55a04d648d00406ac2e1c3d98133d8dca3b0b51a70",
                          "typeString": "literal_string \"tokens have already been revoked\""
                        },
                        "value": "tokens have already been revoked"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d610c6d7ab78b9056a2d5b55a04d648d00406ac2e1c3d98133d8dca3b0b51a70",
                          "typeString": "literal_string \"tokens have already been revoked\""
                        }
                      ],
                      "id": 1953,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "3637:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3637:128:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1969,
                  "nodeType": "ExpressionStatement",
                  "src": "3637:128:8"
                },
                {
                  "assignments": [
                    1971
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1971,
                      "name": "shortOutcomeTokenCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "3775:27:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1970,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3775:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1979,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1976,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "3836:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3836:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1972,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "3805:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 1974,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1973,
                          "name": "SHORT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1743,
                          "src": "3819:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3805:20:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 1975,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "balanceOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2625,
                      "src": "3805:30:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 1978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3805:42:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3775:72:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1980,
                        "name": "outcomeTokensCountShort",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1757,
                        "src": "3857:23:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 1983,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1981,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "3881:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1982,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3881:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3857:35:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1984,
                      "name": "shortOutcomeTokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1971,
                      "src": "3895:22:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3857:60:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1986,
                  "nodeType": "ExpressionStatement",
                  "src": "3857:60:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1991,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "3955:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1992,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3955:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1993,
                        "name": "shortOutcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1971,
                        "src": "3967:22:8",
                        "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": 1987,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "3927:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 1989,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1988,
                          "name": "SHORT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1743,
                          "src": "3941:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3927:20:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 1990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revoke",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1699,
                      "src": "3927:27:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 1994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3927:63:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1995,
                  "nodeType": "ExpressionStatement",
                  "src": "3927:63:8"
                },
                {
                  "assignments": [
                    1997
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1997,
                      "name": "longOutcomeTokenCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "4000:26:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1996,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4000:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2005,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2002,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "4059:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2003,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4059:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1998,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "4029:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 2000,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1999,
                          "name": "LONG",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1746,
                          "src": "4043:4:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4029:19:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 2001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "balanceOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2625,
                      "src": "4029:29:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 2004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4029:41:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4000:70:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2011,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2006,
                        "name": "outcomeTokensCountLong",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1761,
                        "src": "4080:22:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 2009,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2007,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "4103:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2008,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4103:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4080:34:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2010,
                      "name": "longOutcomeTokenCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1997,
                      "src": "4117:21:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4080:58:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2012,
                  "nodeType": "ExpressionStatement",
                  "src": "4080:58:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2017,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "4175:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4175:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2019,
                        "name": "longOutcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1997,
                        "src": "4187:21:8",
                        "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": 2013,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "4148:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 2015,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2014,
                          "name": "LONG",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1746,
                          "src": "4162:4:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4148:19:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 2016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revoke",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1699,
                      "src": "4148:26:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 2020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4148:61:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2021,
                  "nodeType": "ExpressionStatement",
                  "src": "4148:61:8"
                }
              ]
            },
            "documentation": null,
            "id": 2023,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "revokeOutcomeTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1951,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3428:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 1952,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3450:0:8"
            },
            "scope": 2415,
            "src": "3400:816:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2178,
              "nodeType": "Block",
              "src": "4456:1793:8",
              "statements": [
                {
                  "assignments": [
                    2033
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2033,
                      "name": "shortOutcomeTokenCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "4467:27:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2032,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4467:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2038,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2034,
                      "name": "outcomeTokensCountShort",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1757,
                      "src": "4497:23:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 2037,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2035,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8523,
                        "src": "4521:3:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2036,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4521:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4497:35:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4467:65:8"
                },
                {
                  "assignments": [
                    2040
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2040,
                      "name": "longOutcomeTokenCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "4542:26:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2039,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4542:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2045,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2041,
                      "name": "outcomeTokensCountLong",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1761,
                      "src": "4571:22:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 2044,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2042,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8523,
                        "src": "4594:3:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4594:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4571:34:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4542:63:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2053,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2049,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2047,
                            "name": "shortOutcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2033,
                            "src": "4693:22:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2048,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4718:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4693:26:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2052,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2050,
                            "name": "longOutcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2040,
                            "src": "4723:21:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2051,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4747:1:8",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4723:25:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4693:55:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20666972737420746f6b656e73206d757374206265207265766f6b6564",
                        "id": 2054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4750:31:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6c986cdeeb733aed2450e610d2f5bd4464d09b0f74eb8baf952a020a906f5903",
                          "typeString": "literal_string \" first tokens must be revoked\""
                        },
                        "value": " first tokens must be revoked"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6c986cdeeb733aed2450e610d2f5bd4464d09b0f74eb8baf952a020a906f5903",
                          "typeString": "literal_string \" first tokens must be revoked\""
                        }
                      ],
                      "id": 2046,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "4685:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4685:97:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2056,
                  "nodeType": "ExpressionStatement",
                  "src": "4685:97:8"
                },
                {
                  "assignments": [
                    2058
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2058,
                      "name": "outcome",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "4826:11:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 2057,
                        "name": "int",
                        "nodeType": "ElementaryTypeName",
                        "src": "4826:3:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2063,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2060,
                        "name": "branchForWithdraw",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2025,
                        "src": "4851:17:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2061,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2027,
                        "src": "4870:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2059,
                      "name": "getOutcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2353,
                      "src": "4840:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_int256_$",
                        "typeString": "function (bytes32,address) view returns (int256)"
                      }
                    },
                    "id": 2062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4840:41:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4826:55:8"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2065,
                      "name": "convertedWinningOutcome",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "4945:30:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      },
                      "typeName": {
                        "id": 2064,
                        "name": "uint24",
                        "nodeType": "ElementaryTypeName",
                        "src": "4945:6:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2066,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4945:30:8"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 2069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2067,
                      "name": "outcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "4989:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2068,
                      "name": "lowerBound",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1751,
                      "src": "4999:10:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "4989:20:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 2076,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2074,
                        "name": "outcome",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2058,
                        "src": "5123:7:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2075,
                        "name": "upperBound",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1753,
                        "src": "5133:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "src": "5123:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 2081,
                          "name": "convertedWinningOutcome",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2065,
                          "src": "5263:23:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 2093,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                "id": 2088,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2083,
                                  "name": "OUTCOME_RANGE",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1749,
                                  "src": "5296:13:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint24",
                                    "typeString": "uint24"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "id": 2086,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 2084,
                                        "name": "outcome",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2058,
                                        "src": "5313:7:8",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 2085,
                                        "name": "lowerBound",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1751,
                                        "src": "5323:10:8",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "src": "5313:20:8",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    }
                                  ],
                                  "id": 2087,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "5312:22:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "src": "5296:38:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    },
                                    "id": 2091,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 2089,
                                      "name": "upperBound",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1753,
                                      "src": "5338:10:8",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "id": 2090,
                                      "name": "lowerBound",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1751,
                                      "src": "5351:10:8",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    },
                                    "src": "5338:23:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "id": 2092,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "5337:25:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "src": "5296:66:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "id": 2082,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5289:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint24_$",
                              "typeString": "type(uint24)"
                            },
                            "typeName": "uint24"
                          },
                          "id": 2094,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5289:74:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "src": "5263:100:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "id": 2096,
                      "nodeType": "ExpressionStatement",
                      "src": "5263:100:8"
                    },
                    "id": 2097,
                    "nodeType": "IfStatement",
                    "src": "5119:244:8",
                    "trueBody": {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 2077,
                          "name": "convertedWinningOutcome",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2065,
                          "src": "5157:23:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 2078,
                          "name": "OUTCOME_RANGE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1749,
                          "src": "5183:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "src": "5157:39:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "id": 2080,
                      "nodeType": "ExpressionStatement",
                      "src": "5157:39:8"
                    }
                  },
                  "id": 2098,
                  "nodeType": "IfStatement",
                  "src": "4985:378:8",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2072,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 2070,
                        "name": "convertedWinningOutcome",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2065,
                        "src": "5023:23:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2071,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5049:1:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "5023:27:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "id": 2073,
                    "nodeType": "ExpressionStatement",
                    "src": "5023:27:8"
                  }
                },
                {
                  "assignments": [
                    2100
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2100,
                      "name": "factorShort",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "5373:16:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2099,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5373:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2104,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    },
                    "id": 2103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2101,
                      "name": "OUTCOME_RANGE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1749,
                      "src": "5392:13:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2102,
                      "name": "convertedWinningOutcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "5408:23:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "5392:39:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5373:58:8"
                },
                {
                  "assignments": [
                    2106
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2106,
                      "name": "factorLong",
                      "nodeType": "VariableDeclaration",
                      "scope": 2179,
                      "src": "5441:15:8",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2105,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5441:4:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2110,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2109,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2107,
                      "name": "OUTCOME_RANGE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1749,
                      "src": "5459:13:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2108,
                      "name": "factorShort",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2100,
                      "src": "5475:11:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5459:27:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5441:45:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2111,
                      "name": "winnings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2030,
                      "src": "5496:8:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2124,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2119,
                                    "name": "factorLong",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2106,
                                    "src": "5578:10:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2117,
                                    "name": "longOutcomeTokenCount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2040,
                                    "src": "5552:21:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 2118,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mul",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3802,
                                  "src": "5552:25:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) view returns (uint256)"
                                  }
                                },
                                "id": 2120,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5552:37:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2114,
                                    "name": "factorShort",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2100,
                                    "src": "5535:11:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2112,
                                    "name": "shortOutcomeTokenCount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2033,
                                    "src": "5508:22:8",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 2113,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mul",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3802,
                                  "src": "5508:26:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) view returns (uint256)"
                                  }
                                },
                                "id": 2115,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5508:39:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2116,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3760,
                              "src": "5508:43:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) view returns (uint256)"
                              }
                            },
                            "id": 2121,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5508:82:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 2122,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5507:84:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "/",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2123,
                        "name": "OUTCOME_RANGE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1749,
                        "src": "5594:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "src": "5507:100:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5496:111:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2126,
                  "nodeType": "ExpressionStatement",
                  "src": "5496:111:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2138,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "5663:110:8",
                        "subExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2132,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8523,
                                "src": "5714:3:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2133,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5714:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2134,
                              "name": "NULL_HASH",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1947,
                              "src": "5726:9:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2135,
                              "name": "branchForWithdraw",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2025,
                              "src": "5737:17:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2136,
                              "name": "collateralBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45,
                              "src": "5756:16:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2129,
                                  "name": "forkonomicToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 41,
                                  "src": "5680:15:8",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                    "typeString": "contract ForkonomicToken"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                    "typeString": "contract ForkonomicToken"
                                  }
                                ],
                                "id": 2128,
                                "name": "ForkonomicToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6226,
                                "src": "5664:15:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_ForkonomicToken_$6226_$",
                                  "typeString": "type(contract ForkonomicToken)"
                                }
                              },
                              "id": 2130,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5664:32:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 2131,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hasBoxWithdrawal",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6102,
                            "src": "5664:49:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,bytes32,bytes32,bytes32) view external returns (bool)"
                            }
                          },
                          "id": 2137,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5664:109:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74686572652068616420616c7265616479206265656e2061207769746864726177616c202872656465656d57696e6e696e677329",
                        "id": 2139,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5775:54:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_56cfb69b8e7891c4eddd43f085180a60b2a4a502235091a578e70123652df711",
                          "typeString": "literal_string \"there had already been a withdrawal (redeemWinnings)\""
                        },
                        "value": "there had already been a withdrawal (redeemWinnings)"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_56cfb69b8e7891c4eddd43f085180a60b2a4a502235091a578e70123652df711",
                          "typeString": "literal_string \"there had already been a withdrawal (redeemWinnings)\""
                        }
                      ],
                      "id": 2127,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "5655:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5655:175:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2141,
                  "nodeType": "ExpressionStatement",
                  "src": "5655:175:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2147,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "5894:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2148,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5894:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2149,
                            "name": "winnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2030,
                            "src": "5906:8:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2150,
                            "name": "branchForWithdraw",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2025,
                            "src": "5916:17:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2151,
                            "name": "NULL_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1947,
                            "src": "5935:9:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2152,
                            "name": "NULL_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1947,
                            "src": "5946:9:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2144,
                                "name": "forkonomicToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 41,
                                "src": "5865:15:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              ],
                              "id": 2143,
                              "name": "ForkonomicToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6226,
                              "src": "5849:15:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ForkonomicToken_$6226_$",
                                "typeString": "type(contract ForkonomicToken)"
                              }
                            },
                            "id": 2145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5849:32:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 2146,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "boxTransfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5799,
                          "src": "5849:44:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32,bytes32,bytes32) external returns (bool)"
                          }
                        },
                        "id": 2153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5849:107:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e736665722077656e742077726f6e67202872656465656d57696e6e696e677329",
                        "id": 2154,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5958:38:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_30ab301b8c958be2646a2ca2ee783e9ed3caab5fca8091f92ad5b998f0e620ae",
                          "typeString": "literal_string \"transfer went wrong (redeemWinnings)\""
                        },
                        "value": "transfer went wrong (redeemWinnings)"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_30ab301b8c958be2646a2ca2ee783e9ed3caab5fca8091f92ad5b998f0e620ae",
                          "typeString": "literal_string \"transfer went wrong (redeemWinnings)\""
                        }
                      ],
                      "id": 2142,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "5841:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5841:156:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2156,
                  "nodeType": "ExpressionStatement",
                  "src": "5841:156:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2162,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "6068:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2163,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6068:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2164,
                            "name": "NULL_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1947,
                            "src": "6080:9:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2165,
                            "name": "winnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2030,
                            "src": "6091:8:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2166,
                            "name": "branchForWithdraw",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2025,
                            "src": "6101:17:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2159,
                                "name": "forkonomicToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 41,
                                "src": "6031:15:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                                  "typeString": "contract ForkonomicToken"
                                }
                              ],
                              "id": 2158,
                              "name": "ForkonomicToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6226,
                              "src": "6015:15:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ForkonomicToken_$6226_$",
                                "typeString": "type(contract ForkonomicToken)"
                              }
                            },
                            "id": 2160,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6015:32:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 2161,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "recordBoxWithdrawal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6047,
                          "src": "6015:52:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,bytes32,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 2167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6015:104:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7769746864726177616c20636f756c64206e6f74206265207265636f72646564",
                        "id": 2168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6121:34:8",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7b7081635c008d8f1bd7f934ccc2f04b3d3e6017bd031213d1da4fd63c0f05d3",
                          "typeString": "literal_string \"withdrawal could not be recorded\""
                        },
                        "value": "withdrawal could not be recorded"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7b7081635c008d8f1bd7f934ccc2f04b3d3e6017bd031213d1da4fd63c0f05d3",
                          "typeString": "literal_string \"withdrawal could not be recorded\""
                        }
                      ],
                      "id": 2157,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "6007:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6007:149:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2170,
                  "nodeType": "ExpressionStatement",
                  "src": "6007:149:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2172,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "6202:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6202:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2174,
                        "name": "winnings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2030,
                        "src": "6214:8:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2175,
                        "name": "branchForWithdraw",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2025,
                        "src": "6224:17:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2171,
                      "name": "WinningsRedemption",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 32,
                      "src": "6183:18:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 2176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6183:59:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2177,
                  "nodeType": "EmitStatement",
                  "src": "6178:64:8"
                }
              ]
            },
            "documentation": "@dev Exchanges sender's winning outcome tokens for collateral tokens\n @return Sender's winnings",
            "id": 2179,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "redeemWinnings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2028,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2025,
                  "name": "branchForWithdraw",
                  "nodeType": "VariableDeclaration",
                  "scope": 2179,
                  "src": "4358:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2024,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4358:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2027,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2179,
                  "src": "4385:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4385:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4357:47:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2031,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2030,
                  "name": "winnings",
                  "nodeType": "VariableDeclaration",
                  "scope": 2179,
                  "src": "4437:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2029,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4437:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4436:15:8"
            },
            "scope": 2415,
            "src": "4334:1915:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2194,
              "nodeType": "Block",
              "src": "6413:110:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "6423:42:8",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2182,
                        "name": "outcomeTokensCountShort",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1757,
                        "src": "6430:23:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 2185,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2183,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "6454:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2184,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6454:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6430:35:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2187,
                  "nodeType": "ExpressionStatement",
                  "src": "6423:42:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "6475:41:8",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2188,
                        "name": "outcomeTokensCountLong",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1761,
                        "src": "6482:22:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 2191,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2189,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "6505:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6505:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6482:34:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2193,
                  "nodeType": "ExpressionStatement",
                  "src": "6475:41:8"
                }
              ]
            },
            "documentation": "@dev Risky operation, deletes data and can safe gas in combination with other function calls\n @return free gas",
            "id": 2195,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "clearData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2180,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6399:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2181,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6413:0:8"
            },
            "scope": 2415,
            "src": "6381:142:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2210,
              "nodeType": "Block",
              "src": "6689:105:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2203,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "6733:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2204,
                            "name": "questionId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 47,
                            "src": "6751:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2205,
                            "name": "lowerBound",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1751,
                            "src": "6763:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2206,
                            "name": "upperBound",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1753,
                            "src": "6775:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2201,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8510,
                            "src": "6716:3:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2202,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6716:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2207,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6716:70:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2200,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8517,
                      "src": "6706:9:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6706:81:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2199,
                  "id": 2209,
                  "nodeType": "Return",
                  "src": "6699:88:8"
                }
              ]
            },
            "documentation": "@dev Calculates and returns event hash\n @return Event hash",
            "id": 2211,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getEventHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6628:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2198,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2211,
                  "src": "6676:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6676:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6675:9:8"
            },
            "scope": 2415,
            "src": "6607:187:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2255,
              "nodeType": "Block",
              "src": "7093:443:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2219,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "7197:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2220,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7197:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2221,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8574,
                            "src": "7209:4:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2415",
                              "typeString": "contract ScalarEvent"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2222,
                            "name": "collateralTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2213,
                            "src": "7215:20:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2223,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "7237:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2415",
                              "typeString": "contract ScalarEvent"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2217,
                            "name": "forkonomicToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "7168:15:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 2218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5822,
                          "src": "7168:28:8",
                          "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": 2224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7168:86:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e7366657220776173206e6f7420706f737369626c65",
                        "id": 2225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7256:27:8",
                        "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": 2216,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "7160:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7160:124:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2227,
                  "nodeType": "ExpressionStatement",
                  "src": "7160:124:8"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2243,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8523,
                            "src": "7424:3:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2244,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7424:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2245,
                          "name": "collateralTokenCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2213,
                          "src": "7436:20:8",
                          "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": 2239,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "7401:13:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 2241,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2240,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2229,
                            "src": "7415:1:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "7401:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        },
                        "id": 2242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "issue",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1666,
                        "src": "7401:22:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256) external"
                        }
                      },
                      "id": 2246,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7401:56:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2247,
                    "nodeType": "ExpressionStatement",
                    "src": "7401:56:8"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2232,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2229,
                      "src": "7358:1:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2233,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "7362:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 2234,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7362:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7358:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2248,
                  "initializationExpression": {
                    "assignments": [
                      2229
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2229,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2256,
                        "src": "7345:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 2228,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "7345:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2231,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2230,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7355:1:8",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7345:11:8"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2237,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7384:3:8",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2236,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2229,
                        "src": "7384:1:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 2238,
                    "nodeType": "ExpressionStatement",
                    "src": "7384:3:8"
                  },
                  "nodeType": "ForStatement",
                  "src": "7340:117:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2250,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "7496:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2251,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7496:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2252,
                        "name": "collateralTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2213,
                        "src": "7508:20:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2249,
                      "name": "OutcomeTokenSetIssuance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18,
                      "src": "7472:23:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 2253,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7472:57:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2254,
                  "nodeType": "EmitStatement",
                  "src": "7467:62:8"
                }
              ]
            },
            "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": 2256,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "buyAllOutcomes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2214,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2213,
                  "name": "collateralTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2256,
                  "src": "7047:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2212,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7047:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7046:27:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2215,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7093:0:8"
            },
            "scope": 2415,
            "src": "7023:513:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2299,
              "nodeType": "Block",
              "src": "7787:424:8",
              "statements": [
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2276,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8523,
                            "src": "7944:3:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2277,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7944:10:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2278,
                          "name": "outcomeTokenCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2258,
                          "src": "7956:17:8",
                          "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": 2272,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "7920:13:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 2274,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2273,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2262,
                            "src": "7934:1:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "7920:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                            "typeString": "contract OutcomeToken"
                          }
                        },
                        "id": 2275,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "revoke",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1699,
                        "src": "7920:23:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256) external"
                        }
                      },
                      "id": 2279,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7920:54:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2280,
                    "nodeType": "ExpressionStatement",
                    "src": "7920:54:8"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2268,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2265,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2262,
                      "src": "7877:1:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2266,
                        "name": "outcomeTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "7881:13:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                          "typeString": "contract OutcomeToken[] storage ref"
                        }
                      },
                      "id": 2267,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7881:20:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7877:24:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2281,
                  "initializationExpression": {
                    "assignments": [
                      2262
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2262,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2300,
                        "src": "7864:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 2261,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "7864:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2264,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7874:1:8",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7864:11:8"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2270,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7903:3:8",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2269,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2262,
                        "src": "7903:1:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 2271,
                    "nodeType": "ExpressionStatement",
                    "src": "7903:3:8"
                  },
                  "nodeType": "ForStatement",
                  "src": "7859:115:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2285,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8523,
                              "src": "8065:3:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2286,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "8065:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2287,
                            "name": "outcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2258,
                            "src": "8077:17:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2288,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "8096:16:8",
                            "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": 2283,
                            "name": "forkonomicToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "8040:15:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6226",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 2284,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5687,
                          "src": "8040:24:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 2289,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8040:73:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e73666572206661696c6564",
                        "id": 2290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8115:17:8",
                        "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": 2282,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "8032:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8032:101:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2292,
                  "nodeType": "ExpressionStatement",
                  "src": "8032:101:8"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2294,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8523,
                          "src": "8174:3:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2295,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8174:10:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2296,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2258,
                        "src": "8186:17:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2293,
                      "name": "OutcomeTokenSetRevocation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24,
                      "src": "8148:25:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 2297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8148:56:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2298,
                  "nodeType": "EmitStatement",
                  "src": "8143:61:8"
                }
              ]
            },
            "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": 2300,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "sellAllOutcomes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2258,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2300,
                  "src": "7744:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2257,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7744:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7743:24:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2260,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7787:0:8"
            },
            "scope": 2415,
            "src": "7719:492:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2352,
              "nodeType": "Block",
              "src": "8454:563:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2312,
                            "name": "collateralBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45,
                            "src": "8568:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2313,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2302,
                            "src": "8586:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2310,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "8543:7:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 2311,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isFatherOfBranch",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5269,
                          "src": "8543:24:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 2314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8543:50:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "206e6f74206120666168746572206272616e6368",
                        "id": 2315,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8595:22:8",
                        "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": 2309,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "8535:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8535:83:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2317,
                  "nodeType": "ExpressionStatement",
                  "src": "8535:83:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2321,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2304,
                            "src": "8720:10:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2322,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2302,
                            "src": "8732:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2319,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "8688:7:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 2320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isArbitratorWhitelisted",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5152,
                          "src": "8688:31:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 2323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8688:51:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206e6f742077686974652d6c6973746564",
                        "id": 2324,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8741:29:8",
                        "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": 2318,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "8680:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2325,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8680:91:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2326,
                  "nodeType": "ExpressionStatement",
                  "src": "8680:91:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2332,
                                "name": "questionId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 47,
                                "src": "8848:10:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2330,
                                "name": "realityCheck",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63,
                                "src": "8821:12:8",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Realitio_$8289",
                                  "typeString": "contract Realitio"
                                }
                              },
                              "id": 2331,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getFinalizeTS",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 8223,
                              "src": "8821:26:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint32_$",
                                "typeString": "function (bytes32) view external returns (uint32)"
                              }
                            },
                            "id": 2333,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8821:38:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2334,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2302,
                            "src": "8861:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2328,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43,
                            "src": "8790:7:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$5270",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 2329,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isBranchCreatedAfterTS",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5215,
                          "src": "8790:30:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (uint256,bytes32) view external returns (bool)"
                          }
                        },
                        "id": 2335,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8790:78:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6272616e636820697320746f206f6c64",
                        "id": 2336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8870:18:8",
                        "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": 2327,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8526,
                        8527
                      ],
                      "referencedDeclaration": 8527,
                      "src": "8782:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8782:107:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2338,
                  "nodeType": "ExpressionStatement",
                  "src": "8782:107:8"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2339,
                      "name": "outcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2307,
                      "src": "8900:7:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2343,
                              "name": "questionId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 47,
                              "src": "8951:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2344,
                              "name": "content_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 49,
                              "src": "8963:12:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2345,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2304,
                              "src": "8977:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2346,
                              "name": "minTimeout",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 59,
                              "src": "8989:10:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2347,
                              "name": "minBond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 52,
                              "src": "9001:7:8",
                              "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": 2341,
                              "name": "realityCheck",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63,
                              "src": "8914:12:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Realitio_$8289",
                                "typeString": "contract Realitio"
                              }
                            },
                            "id": 2342,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getFinalAnswerIfMatches",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7595,
                            "src": "8914:36:8",
                            "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": 2348,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8914:95:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8910:3:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int"
                      },
                      "id": 2349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8910:100:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "8900:110:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 2351,
                  "nodeType": "ExpressionStatement",
                  "src": "8900:110:8"
                }
              ]
            },
            "documentation": "@dev gets winning event outcome\n @param branch is the branch on which a user wants to know the result",
            "id": 2353,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcome",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2302,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "8356:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2301,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8356:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2304,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "8372:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2303,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8372:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8355:36:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2307,
                  "name": "outcome",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "8437:11:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 2306,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "8437:3:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8436:13:8"
            },
            "scope": 2415,
            "src": "8336:681:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2363,
              "nodeType": "Block",
              "src": "9171:51:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2359,
                          "name": "outcomeTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 39,
                          "src": "9194:13:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                            "typeString": "contract OutcomeToken[] storage ref"
                          }
                        },
                        "id": 2360,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "9194:20:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2358,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9188:5:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint8_$",
                        "typeString": "type(uint8)"
                      },
                      "typeName": "uint8"
                    },
                    "id": 2361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9188:27:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 2357,
                  "id": 2362,
                  "nodeType": "Return",
                  "src": "9181:34:8"
                }
              ]
            },
            "documentation": "@dev Returns outcome count\n @return Outcome count",
            "id": 2364,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9112:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2357,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2356,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2364,
                  "src": "9160:5:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2355,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "9160:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9159:7:8"
            },
            "scope": 2415,
            "src": "9088:134:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2372,
              "nodeType": "Block",
              "src": "9394:37:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2370,
                    "name": "outcomeTokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 39,
                    "src": "9411:13:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                      "typeString": "contract OutcomeToken[] storage ref"
                    }
                  },
                  "functionReturnParameters": 2369,
                  "id": 2371,
                  "nodeType": "Return",
                  "src": "9404:20:8"
                }
              ]
            },
            "documentation": "@dev Returns outcome tokens array\n @return Outcome tokens",
            "id": 2373,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2365,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9326:2:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2369,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2368,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2373,
                  "src": "9374:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_memory_ptr",
                    "typeString": "contract OutcomeToken[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 2366,
                      "name": "OutcomeToken",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 1700,
                      "src": "9374:12:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                        "typeString": "contract OutcomeToken"
                      }
                    },
                    "id": 2367,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9374:14:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage_ptr",
                      "typeString": "contract OutcomeToken[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9373:16:8"
            },
            "scope": 2415,
            "src": "9301:130:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2413,
              "nodeType": "Block",
              "src": "9678:221:8",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2381,
                      "name": "outcomeTokenDistribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2379,
                      "src": "9688:24:8",
                      "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": 2385,
                            "name": "outcomeTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "9726:13:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                              "typeString": "contract OutcomeToken[] storage ref"
                            }
                          },
                          "id": 2386,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9726:20:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "9715:10:8",
                        "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": 2382,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "9719:4:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 2383,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "9719:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 2387,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9715:32:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "9688:59:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 2389,
                  "nodeType": "ExpressionStatement",
                  "src": "9688:59:8"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2410,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2401,
                          "name": "outcomeTokenDistribution",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2379,
                          "src": "9829:24:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 2403,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2402,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2391,
                          "src": "9854:1:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "nodeType": "IndexAccess",
                        "src": "9829:27:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2408,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2375,
                            "src": "9886:5:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2404,
                              "name": "outcomeTokens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39,
                              "src": "9859:13:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_OutcomeToken_$1700_$dyn_storage",
                                "typeString": "contract OutcomeToken[] storage ref"
                              }
                            },
                            "id": 2406,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2405,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2391,
                              "src": "9873:1:8",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "9859:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_OutcomeToken_$1700",
                              "typeString": "contract OutcomeToken"
                            }
                          },
                          "id": 2407,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balanceOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2625,
                          "src": "9859:26:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                            "typeString": "function (address) view external returns (uint256)"
                          }
                        },
                        "id": 2409,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9859:33:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "9829:63:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2411,
                    "nodeType": "ExpressionStatement",
                    "src": "9829:63:8"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2397,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2394,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2391,
                      "src": "9775:1:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2395,
                        "name": "outcomeTokenDistribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2379,
                        "src": "9779:24:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 2396,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9779:31:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9775:35:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2412,
                  "initializationExpression": {
                    "assignments": [
                      2391
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2391,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2414,
                        "src": "9762:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 2390,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "9762:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2393,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2392,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9772:1:8",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9762:11:8"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2399,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9812:3:8",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2398,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2391,
                        "src": "9812:1:8",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 2400,
                    "nodeType": "ExpressionStatement",
                    "src": "9812:3:8"
                  },
                  "nodeType": "ForStatement",
                  "src": "9757:135:8"
                }
              ]
            },
            "documentation": "@dev Returns the amount of outcome tokens held by owner\n @return Outcome token distribution",
            "id": 2414,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOutcomeTokenDistribution",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2375,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2414,
                  "src": "9581:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2374,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9581:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9580:15:8"
            },
            "payable": false,
            "returnParameters": {
              "id": 2380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2379,
                  "name": "outcomeTokenDistribution",
                  "nodeType": "VariableDeclaration",
                  "scope": 2414,
                  "src": "9641:31:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2377,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "9641:4:8",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2378,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9641:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9640:33:8"
            },
            "scope": 2415,
            "src": "9544:355:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2416,
        "src": "3190:6712:8"
      }
    ],
    "src": "0:9908:8"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-11-11T16:30:48.182Z"
}