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