{
  "contractName": "RealitioERC20",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "withdraw",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "template_hashes",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "question_claims",
      "outputs": [
        {
          "name": "payee",
          "type": "address"
        },
        {
          "name": "last_bond",
          "type": "uint256"
        },
        {
          "name": "queued_funds",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "arbitrator_question_fees",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "commitments",
      "outputs": [
        {
          "name": "reveal_ts",
          "type": "uint32"
        },
        {
          "name": "is_revealed",
          "type": "bool"
        },
        {
          "name": "revealed_answer",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "questions",
      "outputs": [
        {
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "finalize_ts",
          "type": "uint32"
        },
        {
          "name": "is_pending_arbitration",
          "type": "bool"
        },
        {
          "name": "bounty",
          "type": "uint256"
        },
        {
          "name": "best_answer",
          "type": "bytes32"
        },
        {
          "name": "history_hash",
          "type": "bytes32"
        },
        {
          "name": "bond",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "templates",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "arbitrator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogSetQuestionFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "template_id",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "question_text",
          "type": "string"
        }
      ],
      "name": "LogNewTemplate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "template_id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "question",
          "type": "string"
        },
        {
          "indexed": true,
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "arbitrator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "timeout",
          "type": "uint32"
        },
        {
          "indexed": false,
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "indexed": false,
          "name": "nonce",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "created",
          "type": "uint256"
        }
      ],
      "name": "LogNewQuestion",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "bounty_added",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "bounty",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        }
      ],
      "name": "LogFundAnswerBounty",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "answer",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "history_hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "bond",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "ts",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "is_commitment",
          "type": "bool"
        }
      ],
      "name": "LogNewAnswer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "answer_hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "answer",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "nonce",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "bond",
          "type": "uint256"
        }
      ],
      "name": "LogAnswerReveal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        }
      ],
      "name": "LogNotifyOfArbitrationRequest",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "answer",
          "type": "bytes32"
        }
      ],
      "name": "LogFinalize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogClaim",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogWithdraw",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "setToken",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "setQuestionFee",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "content",
          "type": "string"
        }
      ],
      "name": "createTemplate",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "content",
          "type": "string"
        },
        {
          "name": "question",
          "type": "string"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "createTemplateAndAskQuestion",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "template_id",
          "type": "uint256"
        },
        {
          "name": "question",
          "type": "string"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "askQuestion",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "template_id",
          "type": "uint256"
        },
        {
          "name": "question",
          "type": "string"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        },
        {
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "askQuestionERC20",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "fundAnswerBountyERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        },
        {
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "submitAnswerERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer_hash",
          "type": "bytes32"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        },
        {
          "name": "_answerer",
          "type": "address"
        },
        {
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "submitAnswerCommitmentERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        },
        {
          "name": "bond",
          "type": "uint256"
        }
      ],
      "name": "submitAnswerReveal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "requester",
          "type": "address"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        }
      ],
      "name": "notifyOfArbitrationRequest",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "answerer",
          "type": "address"
        }
      ],
      "name": "submitAnswerByArbitrator",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "isFinalized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getFinalAnswer",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "resultFor",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "min_timeout",
          "type": "uint32"
        },
        {
          "name": "min_bond",
          "type": "uint256"
        }
      ],
      "name": "getFinalAnswerIfMatches",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "history_hashes",
          "type": "bytes32[]"
        },
        {
          "name": "addrs",
          "type": "address[]"
        },
        {
          "name": "bonds",
          "type": "uint256[]"
        },
        {
          "name": "answers",
          "type": "bytes32[]"
        }
      ],
      "name": "claimWinnings",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_ids",
          "type": "bytes32[]"
        },
        {
          "name": "lengths",
          "type": "uint256[]"
        },
        {
          "name": "hist_hashes",
          "type": "bytes32[]"
        },
        {
          "name": "addrs",
          "type": "address[]"
        },
        {
          "name": "bonds",
          "type": "uint256[]"
        },
        {
          "name": "answers",
          "type": "bytes32[]"
        }
      ],
      "name": "claimMultipleAndWithdrawBalance",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getContentHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getArbitrator",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getOpeningTS",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getTimeout",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getFinalizeTS",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "isPendingArbitration",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBounty",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBestAnswer",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getHistoryHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBond",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006002553480156200001657600080fd5b506200008d606060405190810160405280603f81526020017f7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c2081526020017f2263617465676f7279223a20222573222c20226c616e67223a20222573227d0081525062000308640100000000026401000000009004565b506200012a608060405190810160405280604f81526020017f7b227469746c65223a20222573222c202274797065223a202275696e74222c2081526020017f22646563696d616c73223a2031382c202263617465676f7279223a202225732281526020017f2c20226c616e67223a20222573227d000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620001c7608060405190810160405280605a81526020017f7b227469746c65223a20222573222c202274797065223a202273696e676c652d81526020017f73656c656374222c20226f7574636f6d6573223a205b25735d2c20226361746581526020017f676f7279223a20222573222c20226c616e67223a20222573227d00000000000081525062000308640100000000026401000000009004565b5062000264608060405190810160405280605c81526020017f7b227469746c65223a20222573222c202274797065223a20226d756c7469706c81526020017f652d73656c656374222c20226f7574636f6d6573223a205b25735d2c2022636181526020017f7465676f7279223a20222573222c20226c616e67223a20222573227d0000000081525062000308640100000000026401000000009004565b5062000301608060405190810160405280604381526020017f7b227469746c65223a20222573222c202274797065223a20226461746574696d81526020017f65222c202263617465676f7279223a20222573222c20226c616e67223a20222581526020017f73227d000000000000000000000000000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620004ca565b60025460008181526003602090815260408083204390555184519293928592918201918291908401908083835b60208310620003565780518252601f19909201916020918201910162000335565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310620003bb5780518252601f1990920191602091820191016200039a565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600483528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b83811015620004545781810151838201526020016200043a565b50505050905090810190601f168015620004825780820380516001836020036101000a031916815260200191505b509250505060405180910390a3620004aa8160016401000000006200360e620004b382021704565b60025592915050565b600082820183811015620004c357fe5b9392505050565b6140f880620004da6000396000f3006080604052600436106101b35763ffffffff60e060020a6000350416631101a0fd81146101b8578063128b7a47146102bf57806312a203c3146102da578063144fa6d71461031f5780632417395c146103405780632518904c1461035857806326d6c97b1461038c57806328828b1e146103a45780632f998a6f146105165780633ccfd60b146105375780634dc266b41461054c5780634df6ca2a1461056d5780634e60f8831461058557806351577ea91461059d578063590158a7146105b55780636fa42742146105f557806370a0823114610616578063762c38fd146106375780637f8d429e146106ba57806382ffa9f7146106e6578063839df945146106fe57806383bf46091461073b5780638d552d4614610794578063924532fb146107ac57806395addb90146107c45780639e63fa6a146108405780639f1025c614610871578063a1130d0414610889578063a462fb7b14610945578063ac7b2a5f1461095d578063acae8f4e1461098a578063bc525652146109a2578063d09cc57e14610945578063d4876b9f146109ba578063f6a94ecb14610a43578063fc0c546a14610a6a578063fe92049d14610a7f575b600080fd5b3480156101c457600080fd5b506040805160206004602480358281013584810280870186019097528086526102bd96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610aa69650505050505050565b005b3480156102cb57600080fd5b506102bd600435602435610ddb565b3480156102e657600080fd5b5061030d600435602435600160a060020a036044351663ffffffff60643516608435611042565b60408051918252519081900360200190f35b34801561032b57600080fd5b506102bd600160a060020a036004351661127b565b34801561034c57600080fd5b5061030d600435611331565b34801561036457600080fd5b50610370600435611346565b60408051600160a060020a039092168252519081900360200190f35b34801561039857600080fd5b5061030d600435611364565b3480156103b057600080fd5b50604080516020600480358082013583810280860185019096528085526102bd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506113799650505050505050565b34801561052257600080fd5b506102bd60043560243560443560643561158d565b34801561054357600080fd5b506102bd61192d565b34801561055857600080fd5b506102bd600435602435604435606435611a21565b34801561057957600080fd5b506102bd600435611ec2565b34801561059157600080fd5b5061030d600435611f11565b3480156105a957600080fd5b5061030d600435611f23565b3480156105c157600080fd5b506105cd600435611f35565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b34801561060157600080fd5b5061030d600160a060020a0360043516611f60565b34801561062257600080fd5b5061030d600160a060020a0360043516611f72565b34801561064357600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261030d95833595369560449491939091019190819084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff9081169160408101359091169060600135611f84565b3480156106c657600080fd5b506106d26004356122aa565b604080519115158252519081900360200190f35b3480156106f257600080fd5b5061030d600435612307565b34801561070a57600080fd5b5061071660043561231d565b6040805163ffffffff9094168452911515602084015282820152519081900360600190f35b34801561074757600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d94369492936024939284019190819084018382808284375094975061234a9650505050505050565b3480156107a057600080fd5b5061030d6004356124e4565b3480156107b857600080fd5b506106d26004356124f9565b3480156107d057600080fd5b506107dc600435612511565b604080519a8b52600160a060020a0390991660208b015263ffffffff9788168a8a015295871660608a015293909516608088015290151560a087015260c086015260e085019290925261010084019190915261012083015251908190036101400190f35b34801561084c57600080fd5b5061085860043561257d565b6040805163ffffffff9092168252519081900360200190f35b34801561087d57600080fd5b5061085860043561259f565b34801561089557600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff90811691604081013590911690606001356125c1565b34801561095157600080fd5b5061030d6004356125e9565b34801561096957600080fd5b506102bd600435602435604435600160a060020a0360643516608435612662565b34801561099657600080fd5b50610858600435612a9c565b3480156109ae57600080fd5b5061030d600435612abe565b3480156109c657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261030d95833595369560449491939091019190819084018382808284375094975050600160a060020a0385351695505063ffffffff60208501358116946040810135909116935060608101359250608001359050612ad0565b348015610a4f57600080fd5b506102bd600435600160a060020a0360243516604435612e45565b348015610a7657600080fd5b5061037061321b565b348015610a8b57600080fd5b506102bd600435602435600160a060020a036044351661322a565b60008060008060008060008b610abb816122aa565b1515610b11576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b8b51600010610b90576040805160e560020a62461bcd02815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201527f6d7573742062652070726f766964656400000000000000000000000000000000606482015290519081900360840190fd5b60008d81526006602090815260408083208054600182015460029092015460059485905292852093840154600490940154600160a060020a039091169c50909a50909850909650945092505b8b51831015610cfc57610c4e858d85815181101515610bf757fe5b906020019060200201518b86815181101515610c0f57fe5b906020019060200201518d87815181101515610c2757fe5b906020019060200201518f88815181101515610c3f57fe5b906020019060200201516133f8565b9150610c60868863ffffffff61360e16565b9550610cb78d85888b8f88815181101515610c7757fe5b906020019060200201518f89815181101515610c8f57fe5b906020019060200201518f8a815181101515610ca757fe5b9060200190602002015189613628565b8b519099509096508a9084908110610ccb57fe5b9060200190602002015196508b83815181101515610ce557fe5b602090810290910101519450600190920191610bdc565b8415610d6757600160a060020a03881615610d2157610d1c8d8988613758565b600095505b60008d8152600660205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1617815560018101889055600201869055610db6565b610d818d89610d7c898b63ffffffff61360e16565b613758565b60008d8152600660205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201555b5050506000998a52506005602081905260409099209098019790975550505050505050565b600082815260056020526040812060010154839190819060c060020a900463ffffffff168110610e43576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615610eaf576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404d833981519152604482015260008051602061402d833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580610ee857504263ffffffff168263ffffffff16115b1515610f40576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406d83398151915260448201526000805160206140ad833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff16801580610f7957504263ffffffff168163ffffffff1611155b1515610fbd576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b610fc6846137db565b600085815260056020526040902060030154610fe8908563ffffffff61360e16565b6000868152600560209081526040918290206003018390558151878152908101929092528051339288927f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6692918290030190a35050505050565b60008561104e816122aa565b15156110a4576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b6000878152600560205260409020548614611109576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74656e742068617368206d757374206d61746368000000000000000000604482015290519081900360640190fd5b600087815260056020526040902060010154600160a060020a0386811691161461117d576040805160e560020a62461bcd02815260206004820152601560248201527f61726269747261746f72206d757374206d617463680000000000000000000000604482015290519081900360640190fd5b60008781526005602052604090206001015463ffffffff60c060020a909104811690851611156111f7576040805160e560020a62461bcd02815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f7567680000000000604482015290519081900360640190fd5b600087815260056020526040902060060154831115611260576040805160e560020a62461bcd02815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f7567680000000000000000604482015290519081900360640190fd5b50505060009384525050600560205250604090206004015490565b600054600160a060020a031615611302576040805160e560020a62461bcd02815260206004820152602260248201527f546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60009081526005602052604090206003015490565b600090815260056020526040902060010154600160a060020a031690565b60009081526005602052604090206006015490565b60008080806060808080845b8e51891015611574578e8981518110151561139c57fe5b9060200190602002015196508d898151811015156113b657fe5b906020019060200201519550856040519080825280602002602001820160405280156113ec578160200160208202803883390190505b50945085604051908082528060200260200182016040528015611419578160200160208202803883390190505b50935085604051908082528060200260200182016040528015611446578160200160208202803883390190505b50925085604051908082528060200260200182016040528015611473578160200160208202803883390190505b509150600090505b8581101561155c578c8881518110151561149157fe5b9060200190602002015185828151811015156114a957fe5b602090810290910101528b518c90899081106114c157fe5b9060200190602002015184828151811015156114d957fe5b600160a060020a039092166020928302909101909101528a518b90899081106114fe57fe5b90602001906020020151838281518110151561151657fe5b6020908102909101015289518a908990811061152e57fe5b90602001906020020151828281518110151561154657fe5b602090810290910101526001978801970161147b565b6115698786868686610aa6565b600190980197611385565b61157c61192d565b505050505050505050505050505050565b600084815260056020526040812060010154859190819060c060020a900463ffffffff1681106115f5576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615611661576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404d833981519152604482015260008051602061402d833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff16915081158061169a57504263ffffffff168263ffffffff16115b15156116f2576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406d83398151915260448201526000805160206140ad833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061172b57504263ffffffff168163ffffffff1611155b151561176f576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b8684600081116117c9576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b6000828152600560205260409020600601546117ec90600263ffffffff61397116565b811015611869576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b888760008111156118dd576000828152600560205260409020600601548110156118dd576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b6118e6886137db565b6118f48b8b338b600061399c565b60008b815260056020526040902060010154611920908c908c9060c060020a900463ffffffff16613b15565b5050505050505050505050565b336000818152600160209081526040808320805490849055835482517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096526024860182905291519094600160a060020a039092169363a9059cbb93604480850194919392918390030190829087803b1580156119b157600080fd5b505af11580156119c5573d6000803e3d6000fd5b505050506040513d60208110156119db57600080fd5b505115156119e857600080fd5b60408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a250565b600084815260056020526040812060010154819086908290819060c060020a900463ffffffff168110611a8c576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580611ac557504263ffffffff168263ffffffff16115b1515611b41576040805160e560020a62461bcd02815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686160448201527f7665207061737365640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff16801580611b7a57504263ffffffff168163ffffffff1611155b1515611bbe576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b6040805160208082018b90528183018a9052825180830384018152606090920192839052815191929182918401908083835b60208310611c0f5780518252601f199092019160209182019101611bf0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310611cad5780518252601f199092019160209182019101611c8e565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260079092529290205491975050640100000000900460ff16159150611d719050576040805160e560020a62461bcd02815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726560448201527f7665616c65642079657400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526007602052604090205463ffffffff428116911611611e04576040805160e560020a62461bcd028152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f74206861766520706160448201527f7373656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600760209081526040808320600181018c9055805464ff0000000019166401000000001790558b83526005909152902060060154861415611e7057600089815260056020526040902060010154611e70908a908a9060c060020a900463ffffffff16613b15565b60408051898152602081018990528082018890529051869133918c917fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f919081900360600190a4505050505050505050565b336000818152600860209081526040918290208490558151928352820183905280517fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda9281900390910190a150565b60046020526000908152604090205481565b60009081526005602052604090205490565b600660205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60086020526000908152604090205481565b60016020526000908152604090205481565b600086815260036020526040812054819081908110611fed576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b888589604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b602083106120405780518252601f199092019160209182019101612021565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b602083106120a55780518252601f199092019160209182019101612086565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828201819052600160a060020a038e166c010000000000000000000000009081028487015263ffffffff8e1660e060020a02605485015233026058840152606c8084018c905285518085039091018152608c9093019485905282519098509195509293508392850191508083835b602083106121595780518252601f19909201916020918201910161213a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061219781838989896000613b8b565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b8381101561225e578181015183820152602001612246565b50505050905090810190601f16801561228b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a498975050505050505050565b6000818152600560205260408120600181015460029091015460e060020a90910463ffffffff169060ff161580156122e85750600063ffffffff8216115b801561230057504263ffffffff168163ffffffff1611155b9392505050565b6000908152600560208190526040909120015490565b6007602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b60025460008181526003602090815260408083204390555184519293928592918201918291908401908083835b602083106123965780518252601f199092019160209182019101612377565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106123f95780518252601f1990920191602091820191016123da565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600483528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b83811015612490578181015183820152602001612478565b50505050905090810190601f1680156124bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a36124db81600163ffffffff61360e16565b60025592915050565b60009081526005602052604090206004015490565b60009081526005602052604090206002015460ff1690565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006909501549395600160a060020a0384169563ffffffff60a060020a860481169660c060020a870482169660e060020a90049091169460ff16939291908a565b60009081526005602052604090206001015460a060020a900463ffffffff1690565b60009081526005602052604090206001015460c060020a900463ffffffff1690565b6000806125cd8861234a565b90506125dd818888888888611f84565b98975050505050505050565b6000816125f5816122aa565b151561264b576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b505060009081526005602052604090206004015490565b600085815260056020526040812060010154819087908290819060c060020a900463ffffffff1681106126cd576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615612739576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404d833981519152604482015260008051602061402d833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff16915081158061277257504263ffffffff168263ffffffff16115b15156127ca576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406d83398151915260448201526000805160206140ad833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061280357504263ffffffff168163ffffffff1611155b1515612847576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b8986600081116128a1576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b6000828152600560205260409020600601546128c490600263ffffffff61397116565b811015612941576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b8b8a60008111156129b5576000828152600560205260409020600601548110156129b5576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b6129be8a6137db565b8d8d8b604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310612a2d5780518252601f199092019160209182019101612a0e565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209b50505050600160a060020a038b1615612a70578a612a72565b335b9750612a7e8e8a613eee565b612a8c8e8a8a8d600161399c565b5050505050505050505050505050565b60009081526005602052604090206001015460e060020a900463ffffffff1690565b60036020526000908152604090205481565b6000806000612ade846137db565b60008a81526003602052604081205411612b42576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b89868a604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b60208310612b955780518252601f199092019160209182019101612b76565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612bfa5780518252601f199092019160209182019101612bdb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150818888338860405160200180866000191660001916815260200185600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018463ffffffff1663ffffffff1660e060020a02815260040183600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310612cf45780518252601f199092019160209182019101612cd5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050612d3181838a8a8a89613b8b565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015612df8578181015183820152602001612de0565b50505050905090810190601f168015612e255780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a49998505050505050505050565b6000838152600560205260409020600101548390600160a060020a03163314612eb8576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260056020526040812060010154859190819060c060020a900463ffffffff168110612f20576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615612f8c576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404d833981519152604482015260008051602061402d833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580612fc557504263ffffffff168263ffffffff16115b151561301d576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406d83398151915260448201526000805160206140ad833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061305657504263ffffffff168163ffffffff1611155b151561309a576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b8685600081111561310e5760008281526005602052604090206006015481101561310e576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b600089815260056020526040812060060154116131c1576040805160e560020a62461bcd02815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e206973207265717565737460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600089815260056020526040808220600201805460ff1916600117905551600160a060020a038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b600054600160a060020a031681565b6000838152600560205260409020600101548390600160a060020a0316331461329d576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260056020526040902060020154849060ff16151561332f576040805160e560020a62461bcd028152602060048201526024808201527f7175657374696f6e206d7573742062652070656e64696e67206172626974726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316151561338f576040805160e560020a62461bcd02815260206004820152601960248201527f616e737765726572206d7573742062652070726f766964656400000000000000604482015290519081900360640190fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600560205260408120600201805460ff191690556133e5908690869086908061399c565b6133f185856000613b15565b5050505050565b604080516020808201879052818301869052606082018590526c01000000000000000000000000600160a060020a0385160260808301527f01000000000000000000000000000000000000000000000000000000000000006094830152825160758184030181526095909201928390528151600093918291908401908083835b602083106134975780518252601f199092019160209182019101613478565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912089141592506134d491505057506001613605565b604080516020808201889052818301879052606082018690526c01000000000000000000000000600160a060020a0386160260808301526000609483015282516075818403018152609590920192839052815191929182918401908083835b602083106135525780518252601f199092019160209182019101613533565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120891415925061358f91505057506000613605565b6040805160e560020a62461bcd02815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d60448201527f6174636820746865206578706563746564206861736800000000000000000000606482015290519081900360840190fd5b95945050505050565b60008282018381101561361d57fe5b8091505b5092915050565b60008060008084156136a857600086815260076020526040902054869250640100000000900460ff161515613680576000828152600760205260408120805464ffffffffff1916815560010155899350889250613749565b6000828152600760205260408120600181018054825464ffffffffff19169092559190915595505b858b141561374257600160a060020a03891615156137015760008c81526005602052604090206003015497985088976136e8908b9063ffffffff61360e16565b60008d8152600560205260408120600301559950613742565b600160a060020a03888116908a161461374257868a10156137225789613724565b865b905061373b8c8a610d7c8d8563ffffffff613fe216565b8798508099505b8989935093505b50509850989650505050505050565b600160a060020a038216600090815260016020526040902054613781908263ffffffff61360e16565b600160a060020a0383166000818152600160209081526040918290209390935580518481529051919286927f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69281900390910190a3505050565b60008115156137e95761396d565b5033600090815260016020526040812054908111156138515781811061382e57613819818363ffffffff613fe216565b3360009081526001602052604090205561396d565b61383e828263ffffffff613fe216565b3360009081526001602052604081205591505b60008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216926323b872dd926064808401936020939083900390910190829087803b1580156138c557600080fd5b505af11580156138d9573d6000803e3d6000fd5b505050506040513d60208110156138ef57600080fd5b5051151561396d576040805160e560020a62461bcd02815260206004820152603960248201527f5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756660448201527f66696369656e7420617070726f7665642062616c616e63653f00000000000000606482015290519081900360840190fd5b5050565b6000808315156139845760009150613621565b5082820282848281151561399457fe5b041461361d57fe5b600085815260056020818152604080842090920154825180830191909152808301889052606081018690526c01000000000000000000000000600160a060020a0388160260808201527f01000000000000000000000000000000000000000000000000000000000000008515150260948201528251607581830301815260959091019283905280519092918291908401908083835b60208310613a505780518252601f199092019160209182019101613a31565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000831115613a9d5760008681526005602052604090206006018390555b600086815260056020818152604092839020909101839055815187815290810183905280820185905242606082015283151560808201529051600160a060020a0386169188917fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219181900360a00190a3505050505050565b6000838152600560205260409020600401829055613b3d63ffffffff428116908390613ff416565b600093845260056020526040909320600101805463ffffffff9490941660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909416939093179092555050565b6000868152600560205260408120600101548190889060c060020a900463ffffffff1615613c03576040805160e560020a62461bcd02815260206004820152601760248201527f7175657374696f6e206d757374206e6f74206578697374000000000000000000604482015290519081900360640190fd5b839250600063ffffffff871611613c64576040805160e560020a62461bcd02815260206004820152601860248201527f74696d656f7574206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b6301e1338063ffffffff871610613ceb576040805160e560020a62461bcd02815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e2033363520646160448201527f7973000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0387161515613d4b576040805160e560020a62461bcd02815260206004820152601660248201527f61726269747261746f72206d7573742062652073657400000000000000000000604482015290519081900360640190fd5b33600160a060020a03881614613e4a57600160a060020a038716600090815260086020526040902054915081831015613df4576040805160e560020a62461bcd02815260206004820152602760248201527f546f6b656e732070726f7669646564206d75737420636f76657220717565737460448201527f696f6e2066656500000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e04838363ffffffff613fe216565b600160a060020a038816600090815260016020526040902054909350613e30908363ffffffff61360e16565b600160a060020a0388166000908152600160205260409020555b50506000968752600560205260409096209485555060018401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931777ffffffff0000000000000000000000000000000000000000191660a060020a63ffffffff92831602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1660c060020a929091169190910217905560030155565b60008181526007602052604081205463ffffffff1615613f7e576040805160e560020a62461bcd02815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008381526005602052604090206001015460089060c060020a900463ffffffff16049050613fb763ffffffff428116908390613ff416565b600092835260076020526040909220805463ffffffff191663ffffffff909316929092179091555050565b600082821115613fee57fe5b50900390565b600082820163ffffffff808516908216101561361d57fe007175657374696f6e206d757374206578697374000000000000000000000000006974726174696f6e0000000000000000000000000000000000000000000000007175657374696f6e206d757374206e6f742062652070656e64696e672061726266696e616c697a6174696f6e20646561646c696e65206d757374206e6f7420686f70656e696e672064617465206d7573742068617665207061737365640000006176652070617373656400000000000000000000000000000000000000000000a165627a7a72305820e53901ebbf0c11372ce328c21754aeed6bf3e16c9ffcc0d063d94c26b834ffae0029",
  "deployedBytecode": "0x6080604052600436106101b35763ffffffff60e060020a6000350416631101a0fd81146101b8578063128b7a47146102bf57806312a203c3146102da578063144fa6d71461031f5780632417395c146103405780632518904c1461035857806326d6c97b1461038c57806328828b1e146103a45780632f998a6f146105165780633ccfd60b146105375780634dc266b41461054c5780634df6ca2a1461056d5780634e60f8831461058557806351577ea91461059d578063590158a7146105b55780636fa42742146105f557806370a0823114610616578063762c38fd146106375780637f8d429e146106ba57806382ffa9f7146106e6578063839df945146106fe57806383bf46091461073b5780638d552d4614610794578063924532fb146107ac57806395addb90146107c45780639e63fa6a146108405780639f1025c614610871578063a1130d0414610889578063a462fb7b14610945578063ac7b2a5f1461095d578063acae8f4e1461098a578063bc525652146109a2578063d09cc57e14610945578063d4876b9f146109ba578063f6a94ecb14610a43578063fc0c546a14610a6a578063fe92049d14610a7f575b600080fd5b3480156101c457600080fd5b506040805160206004602480358281013584810280870186019097528086526102bd96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610aa69650505050505050565b005b3480156102cb57600080fd5b506102bd600435602435610ddb565b3480156102e657600080fd5b5061030d600435602435600160a060020a036044351663ffffffff60643516608435611042565b60408051918252519081900360200190f35b34801561032b57600080fd5b506102bd600160a060020a036004351661127b565b34801561034c57600080fd5b5061030d600435611331565b34801561036457600080fd5b50610370600435611346565b60408051600160a060020a039092168252519081900360200190f35b34801561039857600080fd5b5061030d600435611364565b3480156103b057600080fd5b50604080516020600480358082013583810280860185019096528085526102bd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506113799650505050505050565b34801561052257600080fd5b506102bd60043560243560443560643561158d565b34801561054357600080fd5b506102bd61192d565b34801561055857600080fd5b506102bd600435602435604435606435611a21565b34801561057957600080fd5b506102bd600435611ec2565b34801561059157600080fd5b5061030d600435611f11565b3480156105a957600080fd5b5061030d600435611f23565b3480156105c157600080fd5b506105cd600435611f35565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b34801561060157600080fd5b5061030d600160a060020a0360043516611f60565b34801561062257600080fd5b5061030d600160a060020a0360043516611f72565b34801561064357600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261030d95833595369560449491939091019190819084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff9081169160408101359091169060600135611f84565b3480156106c657600080fd5b506106d26004356122aa565b604080519115158252519081900360200190f35b3480156106f257600080fd5b5061030d600435612307565b34801561070a57600080fd5b5061071660043561231d565b6040805163ffffffff9094168452911515602084015282820152519081900360600190f35b34801561074757600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d94369492936024939284019190819084018382808284375094975061234a9650505050505050565b3480156107a057600080fd5b5061030d6004356124e4565b3480156107b857600080fd5b506106d26004356124f9565b3480156107d057600080fd5b506107dc600435612511565b604080519a8b52600160a060020a0390991660208b015263ffffffff9788168a8a015295871660608a015293909516608088015290151560a087015260c086015260e085019290925261010084019190915261012083015251908190036101400190f35b34801561084c57600080fd5b5061085860043561257d565b6040805163ffffffff9092168252519081900360200190f35b34801561087d57600080fd5b5061085860043561259f565b34801561089557600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff90811691604081013590911690606001356125c1565b34801561095157600080fd5b5061030d6004356125e9565b34801561096957600080fd5b506102bd600435602435604435600160a060020a0360643516608435612662565b34801561099657600080fd5b50610858600435612a9c565b3480156109ae57600080fd5b5061030d600435612abe565b3480156109c657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261030d95833595369560449491939091019190819084018382808284375094975050600160a060020a0385351695505063ffffffff60208501358116946040810135909116935060608101359250608001359050612ad0565b348015610a4f57600080fd5b506102bd600435600160a060020a0360243516604435612e45565b348015610a7657600080fd5b5061037061321b565b348015610a8b57600080fd5b506102bd600435602435600160a060020a036044351661322a565b60008060008060008060008b610abb816122aa565b1515610b11576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b8b51600010610b90576040805160e560020a62461bcd02815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201527f6d7573742062652070726f766964656400000000000000000000000000000000606482015290519081900360840190fd5b60008d81526006602090815260408083208054600182015460029092015460059485905292852093840154600490940154600160a060020a039091169c50909a50909850909650945092505b8b51831015610cfc57610c4e858d85815181101515610bf757fe5b906020019060200201518b86815181101515610c0f57fe5b906020019060200201518d87815181101515610c2757fe5b906020019060200201518f88815181101515610c3f57fe5b906020019060200201516133f8565b9150610c60868863ffffffff61360e16565b9550610cb78d85888b8f88815181101515610c7757fe5b906020019060200201518f89815181101515610c8f57fe5b906020019060200201518f8a815181101515610ca757fe5b9060200190602002015189613628565b8b519099509096508a9084908110610ccb57fe5b9060200190602002015196508b83815181101515610ce557fe5b602090810290910101519450600190920191610bdc565b8415610d6757600160a060020a03881615610d2157610d1c8d8988613758565b600095505b60008d8152600660205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1617815560018101889055600201869055610db6565b610d818d89610d7c898b63ffffffff61360e16565b613758565b60008d8152600660205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201555b5050506000998a52506005602081905260409099209098019790975550505050505050565b600082815260056020526040812060010154839190819060c060020a900463ffffffff168110610e43576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615610eaf576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404d833981519152604482015260008051602061402d833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580610ee857504263ffffffff168263ffffffff16115b1515610f40576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406d83398151915260448201526000805160206140ad833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff16801580610f7957504263ffffffff168163ffffffff1611155b1515610fbd576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b610fc6846137db565b600085815260056020526040902060030154610fe8908563ffffffff61360e16565b6000868152600560209081526040918290206003018390558151878152908101929092528051339288927f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6692918290030190a35050505050565b60008561104e816122aa565b15156110a4576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b6000878152600560205260409020548614611109576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74656e742068617368206d757374206d61746368000000000000000000604482015290519081900360640190fd5b600087815260056020526040902060010154600160a060020a0386811691161461117d576040805160e560020a62461bcd02815260206004820152601560248201527f61726269747261746f72206d757374206d617463680000000000000000000000604482015290519081900360640190fd5b60008781526005602052604090206001015463ffffffff60c060020a909104811690851611156111f7576040805160e560020a62461bcd02815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f7567680000000000604482015290519081900360640190fd5b600087815260056020526040902060060154831115611260576040805160e560020a62461bcd02815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f7567680000000000000000604482015290519081900360640190fd5b50505060009384525050600560205250604090206004015490565b600054600160a060020a031615611302576040805160e560020a62461bcd02815260206004820152602260248201527f546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60009081526005602052604090206003015490565b600090815260056020526040902060010154600160a060020a031690565b60009081526005602052604090206006015490565b60008080806060808080845b8e51891015611574578e8981518110151561139c57fe5b9060200190602002015196508d898151811015156113b657fe5b906020019060200201519550856040519080825280602002602001820160405280156113ec578160200160208202803883390190505b50945085604051908082528060200260200182016040528015611419578160200160208202803883390190505b50935085604051908082528060200260200182016040528015611446578160200160208202803883390190505b50925085604051908082528060200260200182016040528015611473578160200160208202803883390190505b509150600090505b8581101561155c578c8881518110151561149157fe5b9060200190602002015185828151811015156114a957fe5b602090810290910101528b518c90899081106114c157fe5b9060200190602002015184828151811015156114d957fe5b600160a060020a039092166020928302909101909101528a518b90899081106114fe57fe5b90602001906020020151838281518110151561151657fe5b6020908102909101015289518a908990811061152e57fe5b90602001906020020151828281518110151561154657fe5b602090810290910101526001978801970161147b565b6115698786868686610aa6565b600190980197611385565b61157c61192d565b505050505050505050505050505050565b600084815260056020526040812060010154859190819060c060020a900463ffffffff1681106115f5576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615611661576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404d833981519152604482015260008051602061402d833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff16915081158061169a57504263ffffffff168263ffffffff16115b15156116f2576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406d83398151915260448201526000805160206140ad833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061172b57504263ffffffff168163ffffffff1611155b151561176f576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b8684600081116117c9576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b6000828152600560205260409020600601546117ec90600263ffffffff61397116565b811015611869576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b888760008111156118dd576000828152600560205260409020600601548110156118dd576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b6118e6886137db565b6118f48b8b338b600061399c565b60008b815260056020526040902060010154611920908c908c9060c060020a900463ffffffff16613b15565b5050505050505050505050565b336000818152600160209081526040808320805490849055835482517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096526024860182905291519094600160a060020a039092169363a9059cbb93604480850194919392918390030190829087803b1580156119b157600080fd5b505af11580156119c5573d6000803e3d6000fd5b505050506040513d60208110156119db57600080fd5b505115156119e857600080fd5b60408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a250565b600084815260056020526040812060010154819086908290819060c060020a900463ffffffff168110611a8c576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580611ac557504263ffffffff168263ffffffff16115b1515611b41576040805160e560020a62461bcd02815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686160448201527f7665207061737365640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff16801580611b7a57504263ffffffff168163ffffffff1611155b1515611bbe576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b6040805160208082018b90528183018a9052825180830384018152606090920192839052815191929182918401908083835b60208310611c0f5780518252601f199092019160209182019101611bf0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310611cad5780518252601f199092019160209182019101611c8e565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260079092529290205491975050640100000000900460ff16159150611d719050576040805160e560020a62461bcd02815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726560448201527f7665616c65642079657400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526007602052604090205463ffffffff428116911611611e04576040805160e560020a62461bcd028152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f74206861766520706160448201527f7373656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600760209081526040808320600181018c9055805464ff0000000019166401000000001790558b83526005909152902060060154861415611e7057600089815260056020526040902060010154611e70908a908a9060c060020a900463ffffffff16613b15565b60408051898152602081018990528082018890529051869133918c917fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f919081900360600190a4505050505050505050565b336000818152600860209081526040918290208490558151928352820183905280517fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda9281900390910190a150565b60046020526000908152604090205481565b60009081526005602052604090205490565b600660205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60086020526000908152604090205481565b60016020526000908152604090205481565b600086815260036020526040812054819081908110611fed576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b888589604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b602083106120405780518252601f199092019160209182019101612021565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b602083106120a55780518252601f199092019160209182019101612086565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828201819052600160a060020a038e166c010000000000000000000000009081028487015263ffffffff8e1660e060020a02605485015233026058840152606c8084018c905285518085039091018152608c9093019485905282519098509195509293508392850191508083835b602083106121595780518252601f19909201916020918201910161213a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061219781838989896000613b8b565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b8381101561225e578181015183820152602001612246565b50505050905090810190601f16801561228b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a498975050505050505050565b6000818152600560205260408120600181015460029091015460e060020a90910463ffffffff169060ff161580156122e85750600063ffffffff8216115b801561230057504263ffffffff168163ffffffff1611155b9392505050565b6000908152600560208190526040909120015490565b6007602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b60025460008181526003602090815260408083204390555184519293928592918201918291908401908083835b602083106123965780518252601f199092019160209182019101612377565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106123f95780518252601f1990920191602091820191016123da565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600483528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b83811015612490578181015183820152602001612478565b50505050905090810190601f1680156124bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a36124db81600163ffffffff61360e16565b60025592915050565b60009081526005602052604090206004015490565b60009081526005602052604090206002015460ff1690565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006909501549395600160a060020a0384169563ffffffff60a060020a860481169660c060020a870482169660e060020a90049091169460ff16939291908a565b60009081526005602052604090206001015460a060020a900463ffffffff1690565b60009081526005602052604090206001015460c060020a900463ffffffff1690565b6000806125cd8861234a565b90506125dd818888888888611f84565b98975050505050505050565b6000816125f5816122aa565b151561264b576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b505060009081526005602052604090206004015490565b600085815260056020526040812060010154819087908290819060c060020a900463ffffffff1681106126cd576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615612739576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404d833981519152604482015260008051602061402d833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff16915081158061277257504263ffffffff168263ffffffff16115b15156127ca576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406d83398151915260448201526000805160206140ad833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061280357504263ffffffff168163ffffffff1611155b1515612847576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b8986600081116128a1576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b6000828152600560205260409020600601546128c490600263ffffffff61397116565b811015612941576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b8b8a60008111156129b5576000828152600560205260409020600601548110156129b5576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b6129be8a6137db565b8d8d8b604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310612a2d5780518252601f199092019160209182019101612a0e565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209b50505050600160a060020a038b1615612a70578a612a72565b335b9750612a7e8e8a613eee565b612a8c8e8a8a8d600161399c565b5050505050505050505050505050565b60009081526005602052604090206001015460e060020a900463ffffffff1690565b60036020526000908152604090205481565b6000806000612ade846137db565b60008a81526003602052604081205411612b42576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b89868a604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b60208310612b955780518252601f199092019160209182019101612b76565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612bfa5780518252601f199092019160209182019101612bdb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150818888338860405160200180866000191660001916815260200185600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018463ffffffff1663ffffffff1660e060020a02815260040183600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310612cf45780518252601f199092019160209182019101612cd5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050612d3181838a8a8a89613b8b565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015612df8578181015183820152602001612de0565b50505050905090810190601f168015612e255780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a49998505050505050505050565b6000838152600560205260409020600101548390600160a060020a03163314612eb8576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260056020526040812060010154859190819060c060020a900463ffffffff168110612f20576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400d833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615612f8c576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404d833981519152604482015260008051602061402d833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580612fc557504263ffffffff168263ffffffff16115b151561301d576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406d83398151915260448201526000805160206140ad833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061305657504263ffffffff168163ffffffff1611155b151561309a576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408d833981519152604482015290519081900360640190fd5b8685600081111561310e5760008281526005602052604090206006015481101561310e576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b600089815260056020526040812060060154116131c1576040805160e560020a62461bcd02815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e206973207265717565737460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600089815260056020526040808220600201805460ff1916600117905551600160a060020a038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b600054600160a060020a031681565b6000838152600560205260409020600101548390600160a060020a0316331461329d576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260056020526040902060020154849060ff16151561332f576040805160e560020a62461bcd028152602060048201526024808201527f7175657374696f6e206d7573742062652070656e64696e67206172626974726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316151561338f576040805160e560020a62461bcd02815260206004820152601960248201527f616e737765726572206d7573742062652070726f766964656400000000000000604482015290519081900360640190fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600560205260408120600201805460ff191690556133e5908690869086908061399c565b6133f185856000613b15565b5050505050565b604080516020808201879052818301869052606082018590526c01000000000000000000000000600160a060020a0385160260808301527f01000000000000000000000000000000000000000000000000000000000000006094830152825160758184030181526095909201928390528151600093918291908401908083835b602083106134975780518252601f199092019160209182019101613478565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912089141592506134d491505057506001613605565b604080516020808201889052818301879052606082018690526c01000000000000000000000000600160a060020a0386160260808301526000609483015282516075818403018152609590920192839052815191929182918401908083835b602083106135525780518252601f199092019160209182019101613533565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120891415925061358f91505057506000613605565b6040805160e560020a62461bcd02815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d60448201527f6174636820746865206578706563746564206861736800000000000000000000606482015290519081900360840190fd5b95945050505050565b60008282018381101561361d57fe5b8091505b5092915050565b60008060008084156136a857600086815260076020526040902054869250640100000000900460ff161515613680576000828152600760205260408120805464ffffffffff1916815560010155899350889250613749565b6000828152600760205260408120600181018054825464ffffffffff19169092559190915595505b858b141561374257600160a060020a03891615156137015760008c81526005602052604090206003015497985088976136e8908b9063ffffffff61360e16565b60008d8152600560205260408120600301559950613742565b600160a060020a03888116908a161461374257868a10156137225789613724565b865b905061373b8c8a610d7c8d8563ffffffff613fe216565b8798508099505b8989935093505b50509850989650505050505050565b600160a060020a038216600090815260016020526040902054613781908263ffffffff61360e16565b600160a060020a0383166000818152600160209081526040918290209390935580518481529051919286927f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69281900390910190a3505050565b60008115156137e95761396d565b5033600090815260016020526040812054908111156138515781811061382e57613819818363ffffffff613fe216565b3360009081526001602052604090205561396d565b61383e828263ffffffff613fe216565b3360009081526001602052604081205591505b60008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216926323b872dd926064808401936020939083900390910190829087803b1580156138c557600080fd5b505af11580156138d9573d6000803e3d6000fd5b505050506040513d60208110156138ef57600080fd5b5051151561396d576040805160e560020a62461bcd02815260206004820152603960248201527f5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756660448201527f66696369656e7420617070726f7665642062616c616e63653f00000000000000606482015290519081900360840190fd5b5050565b6000808315156139845760009150613621565b5082820282848281151561399457fe5b041461361d57fe5b600085815260056020818152604080842090920154825180830191909152808301889052606081018690526c01000000000000000000000000600160a060020a0388160260808201527f01000000000000000000000000000000000000000000000000000000000000008515150260948201528251607581830301815260959091019283905280519092918291908401908083835b60208310613a505780518252601f199092019160209182019101613a31565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000831115613a9d5760008681526005602052604090206006018390555b600086815260056020818152604092839020909101839055815187815290810183905280820185905242606082015283151560808201529051600160a060020a0386169188917fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219181900360a00190a3505050505050565b6000838152600560205260409020600401829055613b3d63ffffffff428116908390613ff416565b600093845260056020526040909320600101805463ffffffff9490941660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909416939093179092555050565b6000868152600560205260408120600101548190889060c060020a900463ffffffff1615613c03576040805160e560020a62461bcd02815260206004820152601760248201527f7175657374696f6e206d757374206e6f74206578697374000000000000000000604482015290519081900360640190fd5b839250600063ffffffff871611613c64576040805160e560020a62461bcd02815260206004820152601860248201527f74696d656f7574206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b6301e1338063ffffffff871610613ceb576040805160e560020a62461bcd02815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e2033363520646160448201527f7973000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0387161515613d4b576040805160e560020a62461bcd02815260206004820152601660248201527f61726269747261746f72206d7573742062652073657400000000000000000000604482015290519081900360640190fd5b33600160a060020a03881614613e4a57600160a060020a038716600090815260086020526040902054915081831015613df4576040805160e560020a62461bcd02815260206004820152602760248201527f546f6b656e732070726f7669646564206d75737420636f76657220717565737460448201527f696f6e2066656500000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e04838363ffffffff613fe216565b600160a060020a038816600090815260016020526040902054909350613e30908363ffffffff61360e16565b600160a060020a0388166000908152600160205260409020555b50506000968752600560205260409096209485555060018401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931777ffffffff0000000000000000000000000000000000000000191660a060020a63ffffffff92831602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1660c060020a929091169190910217905560030155565b60008181526007602052604081205463ffffffff1615613f7e576040805160e560020a62461bcd02815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008381526005602052604090206001015460089060c060020a900463ffffffff16049050613fb763ffffffff428116908390613ff416565b600092835260076020526040909220805463ffffffff191663ffffffff909316929092179091555050565b600082821115613fee57fe5b50900390565b600082820163ffffffff808516908216101561361d57fe007175657374696f6e206d757374206578697374000000000000000000000000006974726174696f6e0000000000000000000000000000000000000000000000007175657374696f6e206d757374206e6f742062652070656e64696e672061726266696e616c697a6174696f6e20646561646c696e65206d757374206e6f7420686f70656e696e672064617465206d7573742068617665207061737365640000006176652070617373656400000000000000000000000000000000000000000000a165627a7a72305820e53901ebbf0c11372ce328c21754aeed6bf3e16c9ffcc0d063d94c26b834ffae0029",
  "sourceMap": "133:38165:13:-;;;3067:1;3042:26;;6011:564;8:9:-1;5:2;;;30:1;27;20:12;5:2;6011:564:13;6047:81;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:81;;;:::i;:::-;;6138:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:97;;;:::i;:::-;;6245:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:108;;;:::i;:::-;;6363:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:110;;;:::i;:::-;;6483:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:85;;;:::i;:::-;;133:38165;;7408:348;7520:14;;7488:7;7544:13;;;:9;:13;;;;;;;;7560:12;7544:28;;7614:25;;;7488:7;;7520:14;7631:7;;7614:25;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7614:25:13;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7614:25:13;;;7604:36;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7604:36:13;;;;;;;;;;;;-1:-1:-1;7582:19:13;;;:15;:19;;;;;:58;;;;7655:39;;;;;;;;;;;7674:10;;-1:-1:-1;7582:19:13;;-1:-1:-1;7655:39:13;;;;-1:-1:-1;7604:36:13;;7655:39;;;;;;;;;;;;;;;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;7655:39:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7721:9;:2;7728:1;7721:6;;;;;;:9;:::i;:::-;7704:14;:26;7747:2;7408:348;-1:-1:-1;;7408:348:13:o;719:129:14:-;777:7;804:5;;;822:6;;;;815:14;;;;842:1;719:129;-1:-1:-1;;;719:129:14:o;133:38165:13:-;;;;;;;",
  "deployedSourceMap": "133:38165:13:-;;;;;;;;;-1:-1:-1;;;133:38165:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27662:2779;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27662:2779:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27662:2779:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27662:2779:13;;;;-1:-1:-1;27662:2779:13;-1:-1:-1;27662:2779:13;;-1:-1:-1;27662:2779:13;;;;;;;;;-1:-1:-1;;27662:2779:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27662:2779:13;;;;-1:-1:-1;27662:2779:13;-1:-1:-1;27662:2779:13;;-1:-1:-1;27662:2779:13;;;;;;;;;-1:-1:-1;;27662:2779:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27662:2779:13;;;;-1:-1:-1;27662:2779:13;-1:-1:-1;27662:2779:13;;-1:-1:-1;27662:2779:13;;;;;;;;;-1:-1:-1;27662:2779:13;;-1:-1:-1;27662:2779:13;;-1:-1:-1;;;;;;;27662:2779:13;;;15257:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15257:340:13;;;;;;;25687:657;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25687:657:13;;;;;-1:-1:-1;;;;;25687:657:13;;;;;;;;;;;;;;;;;;;;;;;;;;;5693:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5693:157:13;-1:-1:-1;;;;;5693:157:13;;;;;37355:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;37355:127:13;;;;;35968:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;35968:135:13;;;;;;;;;-1:-1:-1;;;;;35968:135:13;;;;;;;;;;;;;;38172:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;38172:123:13;;;;;34562:1003;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;34562:1003:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;34562:1003:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34562:1003:13;;;;-1:-1:-1;34562:1003:13;-1:-1:-1;34562:1003:13;;-1:-1:-1;34562:1003:13;;;;;;;;;-1:-1:-1;;34562:1003:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34562:1003:13;;;;-1:-1:-1;34562:1003:13;-1:-1:-1;34562:1003:13;;-1:-1:-1;34562:1003:13;;;;;;;;;-1:-1:-1;;34562:1003:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34562:1003:13;;;;-1:-1:-1;34562:1003:13;-1:-1:-1;34562:1003:13;;-1:-1:-1;34562:1003:13;;;;;;;;;-1:-1:-1;;34562:1003:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34562:1003:13;;;;-1:-1:-1;34562:1003:13;-1:-1:-1;34562:1003:13;;-1:-1:-1;34562:1003:13;;;;;;;;;-1:-1:-1;;34562:1003:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34562:1003:13;;;;-1:-1:-1;34562:1003:13;-1:-1:-1;34562:1003:13;;-1:-1:-1;34562:1003:13;;;;;;;;;-1:-1:-1;34562:1003:13;;-1:-1:-1;34562:1003:13;;-1:-1:-1;;;;;;;34562:1003:13;16141:467;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16141:467:13;;;;;;;;;;;241:212:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;241:212:2;;;;19807:905:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19807:905:13;;;;;;;;;;;6849:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6849:179:13;;;;;3124:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3124:50:13;;;;;35709:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;35709:138:13;;;;;3231:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3231:48:13;;;;;;;;;-1:-1:-1;;;;;3231:48:13;;;;;;;;;;;;;;;;;;;;;;;;;3340:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3340:59:13;-1:-1:-1;;;;;3340:59:13;;;;;106:44:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;106:44:2;-1:-1:-1;;;;;106:44:2;;;;;10171:763:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10171:763:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10171:763:13;;-1:-1:-1;;;10171:763:13;;-1:-1:-1;;;;;10171:763:13;;-1:-1:-1;;;;10171:763:13;;;;;;;;;;;;;;;;;;;;;;23900:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23900:275:13;;;;;;;;;;;;;;;;;;;;;;;37907:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;37907:138:13;;;;;3285:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3285:49:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7408:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7408:348:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7408:348:13;;-1:-1:-1;7408:348:13;;-1:-1:-1;;;;;;;7408:348:13;37587:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;37587:136:13;;;;;37025:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;37025:151:13;;;;;3180:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3180:45:13;;;;;;;;;;;;-1:-1:-1;;;;;3180:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36238:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;36238:133:13;;;;;;;;;;;;;;;;;;;;;;;;36498:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;36498:128:13;;;;;8630:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8630:416:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8630:416:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8630:416:13;;;;-1:-1:-1;8630:416:13;-1:-1:-1;8630:416:13;;-1:-1:-1;8630:416:13;;;;;;;;-1:-1:-1;8630:416:13;;-1:-1:-1;;;8630:416:13;;-1:-1:-1;;;;;8630:416:13;;-1:-1:-1;;;;8630:416:13;;;;;;;;;;;;;;;;;;;;;;24390:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24390:176:13;;;;;18176:656;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18176:656:13;;;;;;;-1:-1:-1;;;;;18176:656:13;;;;;;;36765:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;36765:135:13;;;;;3074:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3074:44:13;;;;;11906:829;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11906:829:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11906:829:13;;-1:-1:-1;;;;;;;11906:829:13;;;;-1:-1:-1;;11906:829:13;;;;;;;;;;;;;;;;-1:-1:-1;11906:829:13;;;;;-1:-1:-1;11906:829:13;;;;-1:-1:-1;11906:829:13;;22120:506;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22120:506:13;;;-1:-1:-1;;;;;22120:506:13;;;;;;;80:19:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;80:19:2;;;;23222:500:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23222:500:13;;;;;-1:-1:-1;;;;;23222:500:13;;;;;27662:2779;28044:13;28105:17;28174:20;28459:25;28533:19;28600:9;28797:18;27832:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;-1:-1:-1;;;;;5103:63:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;27875:21;;27899:1;-1:-1:-1;27867:86:13;;;;;-1:-1:-1;;;;;27867:86:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28060:28;;;;:15;:28;;;;;;;;:34;;;28125:38;;;28197:41;;;;;28487:9;:22;;;;;;;:35;;;;28555:34;;;;;-1:-1:-1;;;;;28060:34:13;;;;-1:-1:-1;28125:38:13;;-1:-1:-1;28197:41:13;;-1:-1:-1;28487:35:13;;-1:-1:-1;28555:34:13;-1:-1:-1;28060:28:13;-1:-1:-1;28619:746:13;28635:14;:21;28631:1;:25;28619:746;;;28818:97;28846:17;28865:14;28880:1;28865:17;;;;;;;;;;;;;;;;;;28884:7;28892:1;28884:10;;;;;;;;;;;;;;;;;;28896:5;28902:1;28896:8;;;;;;;;;;;;;;;;;;28906:5;28912:1;28906:8;;;;;;;;;;;;;;;;;;28818:27;:97::i;:::-;28797:118;-1:-1:-1;28957:27:13;:12;28974:9;28957:27;:16;:27;:::i;:::-;28942:42;;29023:147;29060:11;29073;29086:12;29100:5;29124;29130:1;29124:8;;;;;;;;;;;;;;;;;;29134:5;29140:1;29134:8;;;;;;;;;;;;;;;;;;29144:7;29152:1;29144:10;;;;;;;;;;;;;;;;;;29156:13;29023:19;:147::i;:::-;29294:8;;28999:171;;-1:-1:-1;28999:171:13;;-1:-1:-1;29294:5:13;;29300:1;;29294:8;;;;;;;;;;;;;;29282:20;;29336:14;29351:1;29336:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28658:3:13;;;;;28619:746;;;29380:30;;29376:992;;-1:-1:-1;;;;;29815:21:13;;;29811:137;;29856:43;29866:11;29879:5;29886:12;29856:9;:43::i;:::-;29932:1;29917:16;;29811:137;29962:28;;;;:15;:28;;;;;:42;;-1:-1:-1;;29962:42:13;-1:-1:-1;;;;;29962:42:13;;;;;-1:-1:-1;30018:38:13;;:50;;;30082:41;;:56;;;29376:992;;;30250:58;30260:11;30273:5;30280:27;:12;30297:9;30280:27;:16;:27;:::i;:::-;30250:9;:58::i;:::-;30329:28;;;;:15;:28;;;;;30322:35;;-1:-1:-1;;30322:35:13;;;;;;;;;;;;29376:992;-1:-1:-1;;;30378:22:13;;;;-1:-1:-1;30378:9:13;:22;;;;;;;;:35;;;:55;;;;-1:-1:-1;;;;;;;27662:2779:13:o;15257:340::-;4005:18;3828:22;;;:9;:22;;;;;:30;;;:22;;4005:18;;;-1:-1:-1;;;3828:30:13;;;;-1:-1:-1;;3820:66:13;;;;;-1:-1:-1;;;;;3820:66:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3820:66:13;;;;;;;;;;;;;;;3905:22;;;;:9;:22;;;;;:45;;;;;3904:46;3896:99;;;;;-1:-1:-1;;;;;3896:99:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3896:99:13;;;;-1:-1:-1;;;;;;;;;;;3896:99:13;;;;;;;;;;;;;;;4026:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4026:34:13;;;;;-1:-1:-1;4078:25:13;;;:54;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;-1:-1:-1;;;;;4070:109:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4070:109:13;;;;-1:-1:-1;;;;;;;;;;;4070:109:13;;;;;;;;;;;;;;;-1:-1:-1;4209:22:13;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4209:33:13;;;;4260:15;;;:44;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;-1:-1:-1;;;;;4252:86:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4252:86:13;;;;;;;;;;;;;;;15380:29;15402:6;15380:21;:29::i;:::-;15451:22;;;;:9;:22;;;;;:29;;;:41;;15485:6;15451:41;:33;:41;:::i;:::-;15419:22;;;;:9;:22;;;;;;;;;:29;;:73;;;15507:83;;;;;;;;;;;;;;15579:10;;15429:11;;15507:83;;;;;;;;;15257:340;;;;;:::o;25687:657::-;25908:7;25868:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;-1:-1:-1;;;;;5103:63:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;25951:22;;;;:9;:22;;;;;:35;25935:51;;25927:87;;;;;-1:-1:-1;;;;;25927:87:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;26046:22;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;;;26032:47:13;;;26046:33;;26032:47;26024:81;;;;;-1:-1:-1;;;;;26024:81:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;26138:22;;;;:9;:22;;;;;:30;;;;-1:-1:-1;;;26138:30:13;;;;;26123:45;;;;;26115:85;;;;;-1:-1:-1;;;;;26115:85:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;26230:22;;;;:9;:22;;;;;:27;;;26218:39;;;26210:76;;;;;-1:-1:-1;;;;;26210:76:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26303:22:13;;;;-1:-1:-1;;26303:9:13;:22;;-1:-1:-1;26303:22:13;;;:34;;;;25687:657::o;5693:157::-;5776:3;5760:5;-1:-1:-1;;;;;5760:5:13;:20;5752:67;;;;;-1:-1:-1;;;;;5752:67:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5829:5;:14;;-1:-1:-1;;5829:14:13;-1:-1:-1;;;;;5829:14:13;;;;;;;;;;5693:157::o;37355:127::-;37420:7;37446:22;;;:9;:22;;;;;:29;;;;37355:127::o;35968:135::-;36037:7;36063:22;;;:9;:22;;;;;:33;;;-1:-1:-1;;;;;36063:33:13;;35968:135::o;38172:123::-;38235:7;38261:22;;;:9;:22;;;;;:27;;;;38172:123::o;34562:1003::-;34861:10;;;;35041:19;;;;34861:10;34900:639;34918:12;:19;34913:2;:24;34900:639;;;34973:12;34986:2;34973:16;;;;;;;;;;;;;;;;;;34959:30;;35016:7;35024:2;35016:11;;;;;;;;;;;;;;;;;;35003:24;;35077:2;35063:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;35063:17:13;;35041:39;;35130:2;35116:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;35116:17:13;;35094:39;;35183:2;35169:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;35169:17:13;;35147:39;;35236:2;35222:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;35222:17:13;;35200:39;;35285:1;35281:5;;35276:205;35292:2;35288:1;:6;35276:205;;;35327:11;35339:1;35327:14;;;;;;;;;;;;;;;;;;35319:2;35322:1;35319:5;;;;;;;;;;;;;;;;;;:22;35367:8;;:5;;35373:1;;35367:8;;;;;;;;;;;;;;35359:2;35362:1;35359:5;;;;;;;;;;-1:-1:-1;;;;;35359:16:13;;;:5;;;;;;;;;;:16;35401:8;;:5;;35407:1;;35401:8;;;;;;;;;;;;;;35393:2;35396:1;35393:5;;;;;;;;;;;;;;;;;;:16;35435:10;;:7;;35443:1;;35435:10;;;;;;;;;;;;;;35427:2;35430:1;35427:5;;;;;;;;;;;;;;;;;;:18;35463:3;;;;;35296;35276:205;;;35494:34;35508:3;35513:2;35517;35521;35525;35494:13;:34::i;:::-;34939:4;;;;;34900:639;;;35548:10;:8;:10::i;:::-;34562:1003;;;;;;;;;;;;;;;:::o;16141:467::-;4005:18;3828:22;;;:9;:22;;;;;:30;;;:22;;4005:18;;;-1:-1:-1;;;3828:30:13;;;;-1:-1:-1;;3820:66:13;;;;;-1:-1:-1;;;;;3820:66:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3820:66:13;;;;;;;;;;;;;;;3905:22;;;;:9;:22;;;;;:45;;;;;3904:46;3896:99;;;;;-1:-1:-1;;;;;3896:99:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3896:99:13;;;;-1:-1:-1;;;;;;;;;;;3896:99:13;;;;;;;;;;;;;;;4026:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4026:34:13;;;;;-1:-1:-1;4078:25:13;;;:54;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;-1:-1:-1;;;;;4070:109:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4070:109:13;;;;-1:-1:-1;;;;;;;;;;;4070:109:13;;;;;;;;;;;;;;;-1:-1:-1;4209:22:13;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4209:33:13;;;;4260:15;;;:44;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;-1:-1:-1;;;;;4252:86:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4252:86:13;;;;;;;;;;;;;;;16298:11;16311:6;5278:1;5269:10;;5261:44;;;;;-1:-1:-1;;;;;5261:44:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:22;;;;:9;:22;;;;;:27;;;:34;;5367:1;5335:34;:31;:34;:::i;:::-;5324:46;;;5316:101;;;;;-1:-1:-1;;;;;5316:101:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16362:11;16375:12;5557:1;5542:12;:16;5538:132;;;5582:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5582:43:13;5574:85;;;;;-1:-1:-1;;;;;5574:85:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;16412:29;16434:6;16412:21;:29::i;:::-;16451:67;16471:11;16484:6;16492:10;16504:6;16512:5;16451:19;:67::i;:::-;16570:22;;;;:9;:22;;;;;:30;;;16528:73;;16570:22;;16562:6;;-1:-1:-1;;;16570:30:13;;;;16528:20;:73::i;:::-;5427:1;;4349;;16141:467;;;;;;;:::o;241:212:2:-;307:10;283:11;297:21;;;:9;:21;;;;;;;;;;328:25;;;;371:5;;:31;;;;;;;;;;;;;;;;;;;;297:21;;-1:-1:-1;;;;;371:5:2;;;;:14;;:31;;;;;297:21;;371:31;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;371:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;371:31:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;371:31:2;363:40;;;;;;;;418:28;;;;;;;;430:10;;418:28;;;;;;;;;;241:212;:::o;19807:905:13:-;19977:19;4623:22;;;:9;:22;;;;;:30;;;19977:19;;4623:22;;19977:19;;;;-1:-1:-1;;;4623:30:13;;;;-1:-1:-1;;4615:66:13;;;;;-1:-1:-1;;;;;4615:66:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4615:66:13;;;;;;;;;;;;;;;4712:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4712:34:13;;;;;-1:-1:-1;4764:25:13;;;:54;;;4814:3;4793:25;;:11;:25;;;4764:54;4756:108;;;;;;;-1:-1:-1;;;;;4756:108:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4894:22:13;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4894:33:13;;;;4945:15;;;:44;;;4985:3;4964:25;;:10;:25;;;;4945:44;4937:86;;;;;;;-1:-1:-1;;;;;4937:86:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4937:86:13;;;;;;;;;;;;;;;20009:31;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;20009:31:13;;;;;;;;19999:42;;20009:31;;;;;19999:42;;;;20009:31;19999:42;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;19999:42:13;;;;;;;;;;;;;;;;19977:64;;20102:11;20115;20128:4;20085:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20085:48:13;;;20075:59;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;20075:59:13;;;;;;;;;;;;;-1:-1:-1;20154:26:13;;;:11;:26;;;;;;:38;20075:59;;-1:-1:-1;;20154:38:13;;;;;20153:39;;-1:-1:-1;20145:94:13;;-1:-1:-1;20145:94:13;;;;-1:-1:-1;;;;;20145:94:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20257:26;;;;:11;:26;;;;;:36;:50;20303:3;20257:50;;:36;;:50;20249:99;;;;;-1:-1:-1;;;;;20249:99:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20359:26;;;;:11;:26;;;;;;;;:42;;;:51;;;20420:45;;-1:-1:-1;;20420:45:13;;;;;20488:22;;;:9;:22;;;;;:27;;;20480:35;;20476:139;;;20573:22;;;;:9;:22;;;;;:30;;;20531:73;;20573:22;;20565:6;;-1:-1:-1;;;20573:30:13;;;;20531:20;:73::i;:::-;20630:74;;;;;;;;;;;;;;;;;;;;20671:11;;20659:10;;20646:11;;20630:74;;;;;;;;;;19807:905;;;;;;;;;:::o;6849:179::-;6955:10;6930:36;;;;:24;:36;;;;;;;;;:42;;;6987:34;;;;;;;;;;;;;;;;;;;;;;6849:179;:::o;3124:50::-;;;;;;;;;;;;;:::o;35709:138::-;35779:7;35805:22;;;:9;:22;;;;;:35;;35709:138::o;3231:48::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3231:48:13;;;;;;:::o;3340:59::-;;;;;;;;;;;;;:::o;106:44:2:-;;;;;;;;;;;;;:::o;10171:763:13:-;10389:7;10417:22;;;:9;:22;;;;;;10389:7;;;;10417:26;-1:-1:-1;10409:58:13;;;;;-1:-1:-1;;;;;10409:58:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;10528:11;10541:10;10553:8;10511:51;;;;;;;;;;;;;;;-1:-1:-1;;;10511:51:13;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10511:51:13;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10511:51:13;;;10501:62;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;10501:62:13;;;;;;;;;;;;10605:70;;;;;;-1:-1:-1;;;;;10605:70:13;;;;;;;;;;;;;-1:-1:-1;;;10605:70:13;;;;;10657:10;10605:70;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;10605:70:13;;;;;;;;10595:81;;10501:62;;-1:-1:-1;10605:70:13;;-1:-1:-1;10605:70:13;;-1:-1:-1;10605:70:13;;10595:81;;;-1:-1:-1;10595:81:13;10605:70;10595:81;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10595:81:13;;;;;;;;;;;;;;;;10573:103;;10687:75;10700:11;10713:12;10727:10;10739:7;10748:10;10760:1;10687:12;:75::i;:::-;10840:12;10777:121;;;10805:10;-1:-1:-1;;;;;10777:121:13;10792:11;10777:121;;;;10817:11;10830:8;10854:10;10866:7;10875:10;10887:5;10894:3;10777:121;;;;;;;;;;;;-1:-1:-1;;;;;10777:121:13;-1:-1:-1;;;;;10777:121:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10777:121:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10916:11;10171:763;-1:-1:-1;;;;;;;;10171:763:13:o;23900:275::-;23968:4;24005:22;;;:9;:22;;;;;:34;;;;24059:45;;;;;-1:-1:-1;;;24005:34:13;;;;;;24059:45;;24058:46;:76;;;;-1:-1:-1;553:1:13;24109:24;;;;24058:76;:108;;;;;24161:3;24139:26;;:11;:26;;;;24058:108;24049:119;23900:275;-1:-1:-1;;;23900:275:13:o;37907:138::-;37977:7;38003:22;;;:9;:22;;;;;;;;:35;;;37907:138::o;3285:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7408:348::-;7520:14;;7488:7;7544:13;;;:9;:13;;;;;;;;7560:12;7544:28;;7614:25;;;7488:7;;7520:14;7631:7;;7614:25;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7614:25:13;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7614:25:13;;;7604:36;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7604:36:13;;;;;;;;;;;;-1:-1:-1;7582:19:13;;;:15;:19;;;;;:58;;;;7655:39;;;;;;;;;;;7674:10;;-1:-1:-1;7582:19:13;;-1:-1:-1;7655:39:13;;;;-1:-1:-1;7604:36:13;;7655:39;;;;;;;;;;;;;;;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;7655:39:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7721:9;:2;7728:1;7721:9;:6;:9;:::i;:::-;7704:14;:26;7747:2;7408:348;-1:-1:-1;;7408:348:13:o;37587:136::-;37656:7;37682:22;;;:9;:22;;;;;:34;;;;37587:136::o;37025:151::-;37101:4;37124:22;;;:9;:22;;;;;:45;;;;;;37025:151::o;3180:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3180:45:13;;;;-1:-1:-1;;;3180:45:13;;;;;-1:-1:-1;;;3180:45:13;;;;;-1:-1:-1;;;3180:45:13;;;;;;;;;;;;;:::o;36238:133::-;36306:6;36331:22;;;:9;:22;;;;;:33;;;-1:-1:-1;;;36331:33:13;;;;;36238:133::o;36498:128::-;36564:6;36589:22;;;:9;:22;;;;;:30;;;-1:-1:-1;;;36589:30:13;;;;;36498:128::o;8630:416::-;8884:7;8903:19;8925:23;8940:7;8925:14;:23::i;:::-;8903:45;;8965:74;8977:11;8990:8;9000:10;9012:7;9021:10;9033:5;8965:11;:74::i;:::-;8958:81;8630:416;-1:-1:-1;;;;;;;;8630:416:13:o;24390:176::-;24499:7;24459:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;-1:-1:-1;;;;;5103:63:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24525:22:13;;;;:9;:22;;;;;:34;;;;24390:176::o;18176:656::-;18522:21;3828:22;;;:9;:22;;;;;:30;;;18522:21;;3828:22;;18522:21;;;;-1:-1:-1;;;3828:30:13;;;;-1:-1:-1;;3820:66:13;;;;;-1:-1:-1;;;;;3820:66:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3820:66:13;;;;;;;;;;;;;;;3905:22;;;;:9;:22;;;;;:45;;;;;3904:46;3896:99;;;;;-1:-1:-1;;;;;3896:99:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3896:99:13;;;;-1:-1:-1;;;;;;;;;;;3896:99:13;;;;;;;;;;;;;;;4026:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4026:34:13;;;;;-1:-1:-1;4078:25:13;;;:54;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;-1:-1:-1;;;;;4070:109:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4070:109:13;;;;-1:-1:-1;;;;;;;;;;;4070:109:13;;;;;;;;;;;;;;;-1:-1:-1;4209:22:13;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4209:33:13;;;;4260:15;;;:44;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;-1:-1:-1;;;;;4252:86:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4252:86:13;;;;;;;;;;;;;;;18367:11;18380:6;5278:1;5269:10;;5261:44;;;;;-1:-1:-1;;;;;5261:44:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:22;;;;:9;:22;;;;;:27;;;:34;;5367:1;5335:34;:31;:34;:::i;:::-;5324:46;;;5316:101;;;;;-1:-1:-1;;;;;5316:101:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18431:11;18444:12;5557:1;5542:12;:16;5538:132;;;5582:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5582:43:13;5574:85;;;;;-1:-1:-1;;;;;5574:85:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;18482:29;18504:6;18482:21;:29::i;:::-;18573:11;18586;18599:6;18556:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;18556:50:13;;;18546:61;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;18546:61:13;;;;;;;;;;;-1:-1:-1;;;;;;;;;18637:25:13;;;18636:52;;18679:9;18636:52;;;18666:10;18636:52;18617:71;;18699:44;18716:11;18729:13;18699:16;:44::i;:::-;18753:71;18773:11;18786:13;18801:8;18811:6;18819:4;18753:19;:71::i;:::-;5427:1;;4349;;18176:656;;;;;;;;;;:::o;36765:135::-;36834:6;36859:22;;;:9;:22;;;;;:34;;;-1:-1:-1;;;36859:34:13;;;;;36765:135::o;3074:44::-;;;;;;;;;;;;;:::o;11906:829::-;12145:7;12274:20;12369:19;12165:29;12187:6;12165:21;:29::i;:::-;12238:1;12213:22;;;:9;:22;;;;;;:26;12205:58;;;;;-1:-1:-1;;;;;12205:58:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;12324:11;12337:10;12349:8;12307:51;;;;;;;;;;;;;;;-1:-1:-1;;;12307:51:13;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12307:51:13;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12307:51:13;;;12297:62;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12297:62:13;;;;;;;;;;;;;;;;12274:85;;12418:12;12432:10;12444:7;12453:10;12465:5;12401:70;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12401:70:13;-1:-1:-1;;;;;12401:70:13;;;;;;;;;;;;-1:-1:-1;;;12401:70:13;;;;;;-1:-1:-1;;;;;12401:70:13;-1:-1:-1;;;;;12401:70:13;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12401:70:13;;;12391:81;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12391:81:13;;;;;;;;;;;;;;;;12369:103;;12483:80;12496:11;12509:12;12523:10;12535:7;12544:10;12556:6;12483:12;:80::i;:::-;12641:12;12578:121;;;12606:10;-1:-1:-1;;;;;12578:121:13;12593:11;12578:121;;;;12618:11;12631:8;12655:10;12667:7;12676:10;12688:5;12695:3;12578:121;;;;;;;;;;;;-1:-1:-1;;;;;12578:121:13;-1:-1:-1;;;;;12578:121:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12578:121:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12717:11;11906:829;-1:-1:-1;;;;;;;;;11906:829:13:o;22120:506::-;3484:22;;;;:9;:22;;;;;:33;;;:22;;-1:-1:-1;;;;;3484:33:13;3470:10;:47;3462:89;;;;;-1:-1:-1;;;;;3462:89:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4005:18;3828:22;;;:9;:22;;;;;:30;;;:22;;4005:18;;;-1:-1:-1;;;3828:30:13;;;;-1:-1:-1;;3820:66:13;;;;;-1:-1:-1;;;;;3820:66:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3820:66:13;;;;;;;;;;;;;;;3905:22;;;;:9;:22;;;;;:45;;;;;3904:46;3896:99;;;;;-1:-1:-1;;;;;3896:99:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3896:99:13;;;;-1:-1:-1;;;;;;;;;;;3896:99:13;;;;;;;;;;;;;;;4026:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4026:34:13;;;;;-1:-1:-1;4078:25:13;;;:54;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;-1:-1:-1;;;;;4070:109:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4070:109:13;;;;-1:-1:-1;;;;;;;;;;;4070:109:13;;;;;;;;;;;;;;;-1:-1:-1;4209:22:13;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4209:33:13;;;;4260:15;;;:44;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;-1:-1:-1;;;;;4252:86:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4252:86:13;;;;;;;;;;;;;;;22329:11;22342:12;5557:1;5542:12;:16;5538:132;;;5582:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5582:43:13;5574:85;;;;;-1:-1:-1;;;;;5574:85:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;22417:1;22387:22;;;:9;:22;;;;;:27;;;:31;22379:110;;;;;-1:-1:-1;;;;;22379:110:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22499:22;;;;:9;:22;;;;;;:45;;:52;;-1:-1:-1;;22499:52:13;22547:4;22499:52;;;22566:53;-1:-1:-1;;;;;22566:53:13;;;22509:11;;22566:53;;22499:22;22566:53;4349:1;;3561;;;22120:506;;;;:::o;80:19:2:-;;;-1:-1:-1;;;;;80:19:2;;:::o;23222:500:13:-;3484:22;;;;:9;:22;;;;;:33;;;:22;;-1:-1:-1;;;;;3484:33:13;3470:10;:47;3462:89;;;;;-1:-1:-1;;;;;3462:89:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4435:22;;;;:9;:22;;;;;:45;;;23380:11;;4435:45;;4427:94;;;;;;;-1:-1:-1;;;;;4427:94:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23425:24:13;;;;23417:62;;;;;-1:-1:-1;;;;;23417:62:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;23494:32;;23519:6;;23506:11;;23494:32;;;;;23585:5;23537:22;;;:9;:22;;;;;:45;;:53;;-1:-1:-1;;23537:53:13;;;23600:60;;23547:11;;23633:6;;23641:8;;23585:5;23600:19;:60::i;:::-;23670:44;23691:11;23704:6;23712:1;23670:20;:44::i;:::-;3561:1;23222:500;;;;:::o;30650:549::-;30880:56;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30880:56:13;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;30880:56:13;;;;;;;;30870:67;;30829:4;;30880:56;;;30870:67;;;;;30880:56;30870:67;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;30870:67:13;;;;;;;;;;30849:88;;30845:131;;-1:-1:-1;30845:131:13;;-1:-1:-1;;30845:131:13;-1:-1:-1;30961:4:13;30954:11;;30845:131;31020:57;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31020:57:13;;;;;;;31071:5;31020:57;;;;;;22:32:-1;26:21;;;22:32;6:49;;31020:57:13;;;;;;;;31010:68;;31020:57;;;;;31010:68;;;;31020:57;31010:68;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;31010:68:13;;;;;;;;;;30989:89;;30985:133;;-1:-1:-1;30985:133:13;;-1:-1:-1;;30985:133:13;-1:-1:-1;31102:5:13;31095:12;;30985:133;31128:64;;;-1:-1:-1;;;;;31128:64:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30650:549;;;;;;;;:::o;719:129:14:-;777:7;804:5;;;822:6;;;;815:14;;;;842:1;835:8;;719:129;;;;;;:::o;31205:2412:13:-;31431:7;31440;31677:21;33155:27;31648:13;31644:482;;;31823:26;;;;:11;:26;;;;;:38;:26;;-1:-1:-1;31823:38:13;;;;;31822:39;31818:298;;;31888:26;;;;:11;:26;;;;;31881:33;;-1:-1:-1;;31881:33:13;;;;;;31940:12;;-1:-1:-1;31954:5:13;;-1:-1:-1;31932:28:13;;31818:298;32008:26;;;;:11;:26;;;;;:42;;;;;32068:33;;-1:-1:-1;;32068:33:13;;;;;;;;32008:42;-1:-1:-1;31818:298:13;32140:21;;;32136:1435;;;-1:-1:-1;;;;;32182:21:13;;;32178:1382;;;32414:22;;;;:9;:22;;;;;:29;;;32360:4;;-1:-1:-1;32360:4:13;;32397:47;;:12;;:47;:16;:47;:::i;:::-;32494:1;32462:22;;;:9;:22;;;;;:29;;:33;32382:62;-1:-1:-1;32178:1382:13;;;-1:-1:-1;;;;;32521:13:13;;;;;;;32517:1043;;33202:4;33186:12;:20;;33185:44;;33217:12;33185:44;;;33210:4;33185:44;33155:74;-1:-1:-1;33312:68:13;33322:11;33335:5;33342:37;:12;33155:74;33342:37;:16;:37;:::i;33312:68::-;33488:4;33480:12;;33525:19;33510:34;;32517:1043;33589:12;33603:5;33581:28;;;;31205:2412;;;;;;;;;;;;;;:::o;30447:197::-;-1:-1:-1;;;;;30560:16:13;;;;;;:9;:16;;;;;;:27;;30581:5;30560:27;:20;:27;:::i;:::-;-1:-1:-1;;;;;30541:16:13;;;;;;:9;:16;;;;;;;;;:46;;;;30602:35;;;;;;;30541:16;;30611:11;;30602:35;;;;;;;;;;30447:197;;;:::o;12741:707::-;12871:11;12817;;12813:48;;;12844:7;;12813:48;-1:-1:-1;12895:10:13;12885:21;;;;:9;:21;;;;;;;12990:7;;12986:258;;;13017:13;;;13013:221;;13074:15;:3;13082:6;13074:15;:7;:15;:::i;:::-;13060:10;13050:21;;;;:9;:21;;;;;:39;13107:7;;13013:221;13161:15;:6;13172:3;13161:15;:10;:15;:::i;:::-;13204:10;13218:1;13194:21;;;:9;:21;;;;;:25;13152:24;-1:-1:-1;13013:221:13;13309:5;;;:53;;;;;;13328:10;13309:53;;;;13348:4;13309:53;;;;;;;;;;;;-1:-1:-1;;;;;13309:5:13;;;;:18;;:53;;;;;;;;;;;;;;;;;:5;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;13309:53:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13309:53:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13309:53:13;13301:123;;;;;;;-1:-1:-1;;;;;13301:123:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12741:707;;:::o;159:173:14:-;217:7;;236:6;;232:35;;;259:1;252:8;;;;232:35;-1:-1:-1;284:5:14;;;288:1;284;:5;302;;;;;;;;:10;295:18;;;20718:678:13;20882:24;20936:22;;;:9;:22;;;;;;;;:35;;;;20919:109;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20919:109:13;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;20919:109:13;;;;;;;;20909:120;;20919:109;;;;;20909:120;;;;;20919:109;20909:120;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;20909:120:13;;;;;;;;;;;;;;;;20882:147;;21144:1;21137:4;:8;21133:73;;;21161:22;;;;:9;:22;;;;;:27;;:34;;;21133:73;21215:22;;;;:9;:22;;;;;;;;;:35;;;:54;;;21285:104;;;;;;;;;;;;;;;;;21370:3;21285:104;;;;;;;;;;;;;-1:-1:-1;;;;;21285:104:13;;;21225:11;;21285:104;;;;;;;;;20718:678;;;;;;:::o;21402:237::-;21513:22;;;;:9;:22;;;;;:34;;:43;;;21603:29;:15;21610:3;21603:15;;;21619:12;;21603:15;:29;:::i;:::-;21566:22;;;;:9;:22;;;;;;:34;;:66;;;;;;;-1:-1:-1;;;21566:66:13;;;;;;;;;;;;-1:-1:-1;;21402:237:13:o;13454:1503::-;13652:14;3683:22;;;:9;:22;;;;;:30;;;13652:14;;3683:22;;-1:-1:-1;;;3683:30:13;;;;:35;3675:71;;;;;-1:-1:-1;;;;;3675:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;13669:6;;-1:-1:-1;13786:1:13;13776:11;;;;13768:48;;;;;-1:-1:-1;;;;;13768:48:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;13845:8;13835:18;;;;13827:65;;;;;-1:-1:-1;;;;;13827:65:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13911:26:13;;;;13903:61;;;;;-1:-1:-1;;;;;13903:61:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;14356:10;-1:-1:-1;;;;;14356:24:13;;;14352:327;;-1:-1:-1;;;;;14419:36:13;;;;;;:24;:36;;;;;;;-1:-1:-1;14477:22:13;;;;14469:74;;;;;-1:-1:-1;;;;;14469:74:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14567:24;:6;14578:12;14567:24;:10;:24;:::i;:::-;-1:-1:-1;;;;;14629:21:13;;;;;;:9;:21;;;;;;14558:33;;-1:-1:-1;14629:39:13;;14655:12;14629:39;:25;:39;:::i;:::-;-1:-1:-1;;;;;14605:21:13;;;;;;:9;:21;;;;;:63;14352:327;-1:-1:-1;;14689:22:13;;;;:9;:22;;;;;;:50;;;-1:-1:-1;14749:33:13;;;:46;;-1:-1:-1;;14749:46:13;-1:-1:-1;;;;;14749:46:13;;;;;;;;-1:-1:-1;;14805:46:13;-1:-1:-1;;;14805:46:13;;;;;;14861:40;;-1:-1:-1;;;14861:40:13;;;;;;;;;;;14911:29;;:38;13454:1503::o;16801:394::-;17019:25;16907:26;;;:11;:26;;;;;:36;;;:63;16899:109;;;;;-1:-1:-1;;;;;16899:109:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17047:22;;;;:9;:22;;;;;:30;;;818:1;;-1:-1:-1;;;17047:30:13;;:57;:30;:57;;-1:-1:-1;17153:35:13;:15;17160:3;17153:15;;;17047:57;;17153:15;:35;:::i;:::-;17114:26;;;;:11;:26;;;;;;:74;;-1:-1:-1;;17114:74:13;;;;;;;;;;;;-1:-1:-1;;16801:394:13:o;605:110:14:-;663:7;685:6;;;;678:14;;;;-1:-1:-1;705:5:14;;;605:110::o;255:125:15:-;311:6;336:5;;;354:6;;;;;;;;;347:14;;",
  "source": "pragma solidity ^0.4.24;\n\nimport './RealitioSafeMath256.sol';\nimport './RealitioSafeMath32.sol';\nimport './BalanceHolderERC20.sol';\n\ncontract RealitioERC20 is BalanceHolder {\n\n    using RealitioSafeMath256 for uint256;\n    using RealitioSafeMath32 for uint32;\n\n    address constant NULL_ADDRESS = address(0);\n\n    // History hash when no history is created, or history has been cleared\n    bytes32 constant NULL_HASH = bytes32(0);\n\n    // An unitinalized finalize_ts for a question will indicate an unanswered question.\n    uint32 constant UNANSWERED = 0;\n\n    // An unanswered reveal_ts for a commitment will indicate that it does not exist.\n    uint256 constant COMMITMENT_NON_EXISTENT = 0;\n\n    // Commit->reveal timeout is 1/8 of the question timeout (rounded down).\n    uint32 constant COMMITMENT_TIMEOUT_RATIO = 8;\n\n    event LogSetQuestionFee(\n        address arbitrator,\n        uint256 amount\n    );\n\n    event LogNewTemplate(\n        uint256 indexed template_id,\n        address indexed user, \n        string question_text\n    );\n\n    event LogNewQuestion(\n        bytes32 indexed question_id,\n        address indexed user, \n        uint256 template_id,\n        string question,\n        bytes32 indexed content_hash,\n        address arbitrator, \n        uint32 timeout,\n        uint32 opening_ts,\n        uint256 nonce,\n        uint256 created\n    );\n\n    event LogFundAnswerBounty(\n        bytes32 indexed question_id,\n        uint256 bounty_added,\n        uint256 bounty,\n        address indexed user \n    );\n\n    event LogNewAnswer(\n        bytes32 answer,\n        bytes32 indexed question_id,\n        bytes32 history_hash,\n        address indexed user,\n        uint256 bond,\n        uint256 ts,\n        bool is_commitment\n    );\n\n    event LogAnswerReveal(\n        bytes32 indexed question_id, \n        address indexed user, \n        bytes32 indexed answer_hash, \n        bytes32 answer, \n        uint256 nonce, \n        uint256 bond\n    );\n\n    event LogNotifyOfArbitrationRequest(\n        bytes32 indexed question_id,\n        address indexed user \n    );\n\n    event LogFinalize(\n        bytes32 indexed question_id,\n        bytes32 indexed answer\n    );\n\n    event LogClaim(\n        bytes32 indexed question_id,\n        address indexed user,\n        uint256 amount\n    );\n\n    struct Question {\n        bytes32 content_hash;\n        address arbitrator;\n        uint32 opening_ts;\n        uint32 timeout;\n        uint32 finalize_ts;\n        bool is_pending_arbitration;\n        uint256 bounty;\n        bytes32 best_answer;\n        bytes32 history_hash;\n        uint256 bond;\n    }\n\n    // Stored in a mapping indexed by commitment_id, a hash of commitment hash, question, bond. \n    struct Commitment {\n        uint32 reveal_ts;\n        bool is_revealed;\n        bytes32 revealed_answer;\n    }\n\n    // Only used when claiming more bonds than fits into a transaction\n    // Stored in a mapping indexed by question_id.\n    struct Claim {\n        address payee;\n        uint256 last_bond;\n        uint256 queued_funds;\n    }\n\n    uint256 nextTemplateID = 0;\n    mapping(uint256 => uint256) public templates;\n    mapping(uint256 => bytes32) public template_hashes;\n    mapping(bytes32 => Question) public questions;\n    mapping(bytes32 => Claim) public question_claims;\n    mapping(bytes32 => Commitment) public commitments;\n    mapping(address => uint256) public arbitrator_question_fees; \n\n    modifier onlyArbitrator(bytes32 question_id) {\n        require(msg.sender == questions[question_id].arbitrator, \"msg.sender must be arbitrator\");\n        _;\n    }\n\n    modifier stateAny() {\n        _;\n    }\n\n    modifier stateNotCreated(bytes32 question_id) {\n        require(questions[question_id].timeout == 0, \"question must not exist\");\n        _;\n    }\n\n    modifier stateOpen(bytes32 question_id) {\n        require(questions[question_id].timeout > 0, \"question must exist\");\n        require(!questions[question_id].is_pending_arbitration, \"question must not be pending arbitration\");\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        require(finalize_ts == UNANSWERED || finalize_ts > uint32(now), \"finalization deadline must not have passed\");\n        uint32 opening_ts = questions[question_id].opening_ts;\n        require(opening_ts == 0 || opening_ts <= uint32(now), \"opening date must have passed\"); \n        _;\n    }\n\n    modifier statePendingArbitration(bytes32 question_id) {\n        require(questions[question_id].is_pending_arbitration, \"question must be pending arbitration\");\n        _;\n    }\n\n    modifier stateOpenOrPendingArbitration(bytes32 question_id) {\n        require(questions[question_id].timeout > 0, \"question must exist\");\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        require(finalize_ts == UNANSWERED || finalize_ts > uint32(now), \"finalization dealine must not have passed\");\n        uint32 opening_ts = questions[question_id].opening_ts;\n        require(opening_ts == 0 || opening_ts <= uint32(now), \"opening date must have passed\"); \n        _;\n    }\n\n    modifier stateFinalized(bytes32 question_id) {\n        require(isFinalized(question_id), \"question must be finalized\");\n        _;\n    }\n\n    modifier bondMustDouble(bytes32 question_id, uint256 tokens) {\n        require(tokens > 0, \"bond must be positive\"); \n        require(tokens >= (questions[question_id].bond.mul(2)), \"bond must be double at least previous bond\");\n        _;\n    }\n\n    modifier previousBondMustNotBeatMaxPrevious(bytes32 question_id, uint256 max_previous) {\n        if (max_previous > 0) {\n            require(questions[question_id].bond <= max_previous, \"bond must exceed max_previous\");\n        }\n        _;\n    }\n\n    function setToken(IERC20 _token) \n    public\n    {\n        require(token == IERC20(0x0), \"Token can only be initialized once\");\n        token = _token;\n    }\n\n    /// @notice Constructor, sets up some initial templates\n    /// @dev Creates some generalized templates for different question types used in the DApp.\n    constructor() \n    public {\n        createTemplate('{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}');\n    }\n\n    /// @notice Function for arbitrator to set an optional per-question fee. \n    /// @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n    /// @param fee The fee to be charged by the arbitrator when a question is asked\n    function setQuestionFee(uint256 fee) \n        stateAny() \n    external {\n        arbitrator_question_fees[msg.sender] = fee;\n        emit LogSetQuestionFee(msg.sender, fee);\n    }\n\n    /// @notice Create a reusable template, which should be a JSON document.\n    /// Placeholders should use gettext() syntax, eg %s.\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param content The template content\n    /// @return The ID of the newly-created template, which is created sequentially.\n    function createTemplate(string content) \n        stateAny()\n    public returns (uint256) {\n        uint256 id = nextTemplateID;\n        templates[id] = block.number;\n        template_hashes[id] = keccak256(abi.encodePacked(content));\n        emit LogNewTemplate(id, msg.sender, content);\n        nextTemplateID = id.add(1);\n        return id;\n    }\n\n    /// @notice Create a new reusable template and use it to ask a question\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param content The template content\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @return The ID of the newly-created template, which is created sequentially.\n    function createTemplateAndAskQuestion(\n        string content, \n        string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce \n    ) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n        uint256 template_id = createTemplate(content);\n        return askQuestion(template_id, question, arbitrator, timeout, opening_ts, nonce);\n    }\n\n    /// @notice Ask a new question without a bounty and return the ID\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n    /// @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n    /// @param template_id The ID number of the template the question will use\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @return The ID of the newly-created question, created deterministically.\n    function askQuestion(uint256 template_id, string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n\n        require(templates[template_id] > 0, \"template must exist\");\n\n        bytes32 content_hash = keccak256(abi.encodePacked(template_id, opening_ts, question));\n        bytes32 question_id = keccak256(abi.encodePacked(content_hash, arbitrator, timeout, msg.sender, nonce));\n\n        _askQuestion(question_id, content_hash, arbitrator, timeout, opening_ts, 0);\n        emit LogNewQuestion(question_id, msg.sender, template_id, question, content_hash, arbitrator, timeout, opening_ts, nonce, now);\n\n        return question_id;\n    }\n\n    /// @notice Ask a new question with a bounty and return the ID\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param template_id The ID number of the template the question will use\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @param tokens The combined initial question bounty and question fee\n    /// @return The ID of the newly-created question, created deterministically.\n    function askQuestionERC20(uint256 template_id, string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 tokens) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n\n        _deductTokensOrRevert(tokens);\n\n        require(templates[template_id] > 0, \"template must exist\");\n\n        bytes32 content_hash = keccak256(abi.encodePacked(template_id, opening_ts, question));\n        bytes32 question_id = keccak256(abi.encodePacked(content_hash, arbitrator, timeout, msg.sender, nonce));\n\n        _askQuestion(question_id, content_hash, arbitrator, timeout, opening_ts, tokens);\n        emit LogNewQuestion(question_id, msg.sender, template_id, question, content_hash, arbitrator, timeout, opening_ts, nonce, now);\n\n        return question_id;\n    }\n\n    function _deductTokensOrRevert(uint256 tokens) \n    internal {\n\n        if (tokens == 0) {\n            return;\n        }\n\n        uint256 bal = balanceOf[msg.sender];\n\n        // Deduct any tokens you have in your internal balance first\n        if (bal > 0) {\n            if (bal >= tokens) {\n                balanceOf[msg.sender] = bal.sub(tokens);\n                return;\n            } else {\n                tokens = tokens.sub(bal);\n                balanceOf[msg.sender] = 0;\n            }\n        }\n        // Now we need to charge the rest from \n        require(token.transferFrom(msg.sender, address(this), tokens), \"Transfer of tokens failed, insufficient approved balance?\");\n        return;\n\n    }\n\n    function _askQuestion(bytes32 question_id, bytes32 content_hash, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 tokens) \n        stateNotCreated(question_id)\n    internal {\n\n        uint256 bounty = tokens;\n\n        // A timeout of 0 makes no sense, and we will use this to check existence\n        require(timeout > 0, \"timeout must be positive\"); \n        require(timeout < 365 days, \"timeout must be less than 365 days\"); \n        require(arbitrator != NULL_ADDRESS, \"arbitrator must be set\");\n\n        // The arbitrator can set a fee for asking a question. \n        // This is intended as an anti-spam defence.\n        // The fee is waived if the arbitrator is asking the question.\n        // This allows them to set an impossibly high fee and make users proxy the question through them.\n        // This would allow more sophisticated pricing, question whitelisting etc.\n        if (msg.sender != arbitrator) {\n            uint256 question_fee = arbitrator_question_fees[arbitrator];\n            require(bounty >= question_fee, \"Tokens provided must cover question fee\"); \n            bounty = bounty.sub(question_fee);\n            balanceOf[arbitrator] = balanceOf[arbitrator].add(question_fee);\n        }\n\n        questions[question_id].content_hash = content_hash;\n        questions[question_id].arbitrator = arbitrator;\n        questions[question_id].opening_ts = opening_ts;\n        questions[question_id].timeout = timeout;\n        questions[question_id].bounty = bounty;\n\n    }\n\n    /// @notice Add funds to the bounty for a question\n    /// @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n    /// @param question_id The ID of the question you wish to fund\n    /// @param tokens The number of tokens to fund\n    function fundAnswerBountyERC20(bytes32 question_id, uint256 tokens) \n        stateOpen(question_id)\n    external {\n        _deductTokensOrRevert(tokens);\n        questions[question_id].bounty = questions[question_id].bounty.add(tokens);\n        emit LogFundAnswerBounty(question_id, tokens, questions[question_id].bounty, msg.sender);\n    }\n\n    /// @notice Submit an answer for a question.\n    /// @dev Adds the answer to the history and updates the current \"best\" answer.\n    /// May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded into bytes32\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    /// @param tokens The amount of tokens to submit\n    function submitAnswerERC20(bytes32 question_id, bytes32 answer, uint256 max_previous, uint256 tokens) \n        stateOpen(question_id)\n        bondMustDouble(question_id, tokens)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n        _deductTokensOrRevert(tokens);\n        _addAnswerToHistory(question_id, answer, msg.sender, tokens, false);\n        _updateCurrentAnswer(question_id, answer, questions[question_id].timeout);\n    }\n\n    // @notice Verify and store a commitment, including an appropriate timeout\n    // @param question_id The ID of the question to store\n    // @param commitment The ID of the commitment\n    function _storeCommitment(bytes32 question_id, bytes32 commitment_id) \n    internal\n    {\n        require(commitments[commitment_id].reveal_ts == COMMITMENT_NON_EXISTENT, \"commitment must not already exist\");\n\n        uint32 commitment_timeout = questions[question_id].timeout / COMMITMENT_TIMEOUT_RATIO;\n        commitments[commitment_id].reveal_ts = uint32(now).add(commitment_timeout);\n    }\n\n    /// @notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n    /// @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n    /// The commitment_id is stored in the answer history where the answer would normally go.\n    /// Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n    /// @param question_id The ID of the question\n    /// @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    /// @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n    /// @param tokens Number of tokens sent\n    /// @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.\n    function submitAnswerCommitmentERC20(bytes32 question_id, bytes32 answer_hash, uint256 max_previous, address _answerer, uint256 tokens) \n        stateOpen(question_id)\n        bondMustDouble(question_id, tokens)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n\n        _deductTokensOrRevert(tokens);\n\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, tokens));\n        address answerer = (_answerer == NULL_ADDRESS) ? msg.sender : _answerer;\n\n        _storeCommitment(question_id, commitment_id);\n        _addAnswerToHistory(question_id, commitment_id, answerer, tokens, true);\n\n    }\n\n    /// @notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n    /// @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n    /// Updates the current answer unless someone has since supplied a new answer with a higher bond\n    /// msg.sender is intentionally not restricted to the user who originally sent the commitment; \n    /// For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n    /// NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded as bytes32\n    /// @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n    /// @param bond The bond that you paid in your submitAnswerCommitment() transaction\n    function submitAnswerReveal(bytes32 question_id, bytes32 answer, uint256 nonce, uint256 bond) \n        stateOpenOrPendingArbitration(question_id)\n    external {\n\n        bytes32 answer_hash = keccak256(abi.encodePacked(answer, nonce));\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, bond));\n\n        require(!commitments[commitment_id].is_revealed, \"commitment must not have been revealed yet\");\n        require(commitments[commitment_id].reveal_ts > uint32(now), \"reveal deadline must not have passed\");\n\n        commitments[commitment_id].revealed_answer = answer;\n        commitments[commitment_id].is_revealed = true;\n\n        if (bond == questions[question_id].bond) {\n            _updateCurrentAnswer(question_id, answer, questions[question_id].timeout);\n        }\n\n        emit LogAnswerReveal(question_id, msg.sender, answer_hash, answer, nonce, bond);\n\n    }\n\n    function _addAnswerToHistory(bytes32 question_id, bytes32 answer_or_commitment_id, address answerer, uint256 bond, bool is_commitment) \n    internal \n    {\n        bytes32 new_history_hash = keccak256(abi.encodePacked(questions[question_id].history_hash, answer_or_commitment_id, bond, answerer, is_commitment));\n\n        // Update the current bond level, if there's a bond (ie anything except arbitration)\n        if (bond > 0) {\n            questions[question_id].bond = bond;\n        }\n        questions[question_id].history_hash = new_history_hash;\n\n        emit LogNewAnswer(answer_or_commitment_id, question_id, new_history_hash, answerer, bond, now, is_commitment);\n    }\n\n    function _updateCurrentAnswer(bytes32 question_id, bytes32 answer, uint32 timeout_secs)\n    internal {\n        questions[question_id].best_answer = answer;\n        questions[question_id].finalize_ts = uint32(now).add(timeout_secs);\n    }\n\n    /// @notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n    /// @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n    /// @param question_id The ID of the question\n    /// @param requester The account that requested arbitration\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    function notifyOfArbitrationRequest(bytes32 question_id, address requester, uint256 max_previous) \n        onlyArbitrator(question_id)\n        stateOpen(question_id)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n        require(questions[question_id].bond > 0, \"Question must already have an answer when arbitration is requested\");\n        questions[question_id].is_pending_arbitration = true;\n        emit LogNotifyOfArbitrationRequest(question_id, requester);\n    }\n\n    /// @notice Submit the answer for a question, for use by the arbitrator.\n    /// @dev Doesn't require (or allow) a bond.\n    /// If the current final answer is correct, the account should be whoever submitted it.\n    /// If the current final answer is wrong, the account should be whoever paid for arbitration.\n    /// However, the answerer stipulations are not enforced by the contract.\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded into bytes32\n    /// @param answerer The account credited with this answer for the purpose of bond claims\n    function submitAnswerByArbitrator(bytes32 question_id, bytes32 answer, address answerer) \n        onlyArbitrator(question_id)\n        statePendingArbitration(question_id)\n    external {\n\n        require(answerer != NULL_ADDRESS, \"answerer must be provided\");\n        emit LogFinalize(question_id, answer);\n\n        questions[question_id].is_pending_arbitration = false;\n        _addAnswerToHistory(question_id, answer, answerer, 0, false);\n        _updateCurrentAnswer(question_id, answer, 0);\n\n    }\n\n    /// @notice Report whether the answer to the specified question is finalized\n    /// @param question_id The ID of the question\n    /// @return Return true if finalized\n    function isFinalized(bytes32 question_id) \n    view public returns (bool) {\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        return ( !questions[question_id].is_pending_arbitration && (finalize_ts > UNANSWERED) && (finalize_ts <= uint32(now)) );\n    }\n\n    /// @notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n    /// @param question_id The ID of the question\n    /// @return The answer formatted as a bytes32\n    function getFinalAnswer(bytes32 question_id) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Return the final answer to the specified question, or revert if there isn't one\n    /// @param question_id The ID of the question\n    /// @return The answer formatted as a bytes32\n    function resultFor(bytes32 question_id) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n\n    /// @notice Return the final answer to the specified question, provided it matches the specified criteria.\n    /// @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n    /// @param question_id The ID of the question\n    /// @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n    /// @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n    /// @param min_timeout The timeout set in the initial question settings must be this high or higher\n    /// @param min_bond The bond sent with the final answer must be this high or higher\n    /// @return The answer formatted as a bytes32\n    function getFinalAnswerIfMatches(\n        bytes32 question_id, \n        bytes32 content_hash, address arbitrator, uint32 min_timeout, uint256 min_bond\n    ) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        require(content_hash == questions[question_id].content_hash, \"content hash must match\");\n        require(arbitrator == questions[question_id].arbitrator, \"arbitrator must match\");\n        require(min_timeout <= questions[question_id].timeout, \"timeout must be long enough\");\n        require(min_bond <= questions[question_id].bond, \"bond must be high enough\");\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n    /// Caller must provide the answer history, in reverse order\n    /// @dev Works up the chain and assign bonds to the person who gave the right answer\n    /// If someone gave the winning answer earlier, they must get paid from the higher bond\n    /// That means we can't pay out the bond added at n until we have looked at n-1\n    /// The first answer is authenticated by checking against the stored history_hash.\n    /// One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n    /// Once we get to a null hash we'll know we're done and there are no more answers.\n    /// Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n    /// @param question_id The ID of the question\n    /// @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n    /// @param addrs Last-to-first, the address of each answerer or commitment sender\n    /// @param bonds Last-to-first, the bond supplied with each answer or commitment\n    /// @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal\n    function claimWinnings(\n        bytes32 question_id, \n        bytes32[] history_hashes, address[] addrs, uint256[] bonds, bytes32[] answers\n    ) \n        stateFinalized(question_id)\n    public {\n\n        require(history_hashes.length > 0, \"at least one history hash entry must be provided\");\n\n        // These are only set if we split our claim over multiple transactions.\n        address payee = question_claims[question_id].payee; \n        uint256 last_bond = question_claims[question_id].last_bond; \n        uint256 queued_funds = question_claims[question_id].queued_funds; \n\n        // Starts as the hash of the final answer submitted. It'll be cleared when we're done.\n        // If we're splitting the claim over multiple transactions, it'll be the hash where we left off last time\n        bytes32 last_history_hash = questions[question_id].history_hash;\n\n        bytes32 best_answer = questions[question_id].best_answer;\n\n        uint256 i;\n        for (i = 0; i < history_hashes.length; i++) {\n        \n            // Check input against the history hash, and see which of 2 possible values of is_commitment fits.\n            bool is_commitment = _verifyHistoryInputOrRevert(last_history_hash, history_hashes[i], answers[i], bonds[i], addrs[i]);\n            \n            queued_funds = queued_funds.add(last_bond); \n            (queued_funds, payee) = _processHistoryItem(\n                question_id, best_answer, queued_funds, payee, \n                addrs[i], bonds[i], answers[i], is_commitment);\n \n            // Line the bond up for next time, when it will be added to somebody's queued_funds\n            last_bond = bonds[i];\n            last_history_hash = history_hashes[i];\n\n        }\n \n        if (last_history_hash != NULL_HASH) {\n            // We haven't yet got to the null hash (1st answer), ie the caller didn't supply the full answer chain.\n            // Persist the details so we can pick up later where we left off later.\n\n            // If we know who to pay we can go ahead and pay them out, only keeping back last_bond\n            // (We always know who to pay unless all we saw were unrevealed commits)\n            if (payee != NULL_ADDRESS) {\n                _payPayee(question_id, payee, queued_funds);\n                queued_funds = 0;\n            }\n\n            question_claims[question_id].payee = payee;\n            question_claims[question_id].last_bond = last_bond;\n            question_claims[question_id].queued_funds = queued_funds;\n        } else {\n            // There is nothing left below us so the payee can keep what remains\n            _payPayee(question_id, payee, queued_funds.add(last_bond));\n            delete question_claims[question_id];\n        }\n\n        questions[question_id].history_hash = last_history_hash;\n\n    }\n\n    function _payPayee(bytes32 question_id, address payee, uint256 value) \n    internal {\n        balanceOf[payee] = balanceOf[payee].add(value);\n        emit LogClaim(question_id, payee, value);\n    }\n\n    function _verifyHistoryInputOrRevert(\n        bytes32 last_history_hash,\n        bytes32 history_hash, bytes32 answer, uint256 bond, address addr\n    )\n    internal pure returns (bool) {\n        if (last_history_hash == keccak256(abi.encodePacked(history_hash, answer, bond, addr, true)) ) {\n            return true;\n        }\n        if (last_history_hash == keccak256(abi.encodePacked(history_hash, answer, bond, addr, false)) ) {\n            return false;\n        } \n        revert(\"History input provided did not match the expected hash\");\n    }\n\n    function _processHistoryItem(\n        bytes32 question_id, bytes32 best_answer, \n        uint256 queued_funds, address payee, \n        address addr, uint256 bond, bytes32 answer, bool is_commitment\n    )\n    internal returns (uint256, address) {\n\n        // For commit-and-reveal, the answer history holds the commitment ID instead of the answer.\n        // We look at the referenced commitment ID and switch in the actual answer.\n        if (is_commitment) {\n            bytes32 commitment_id = answer;\n            // If it's a commit but it hasn't been revealed, it will always be considered wrong.\n            if (!commitments[commitment_id].is_revealed) {\n                delete commitments[commitment_id];\n                return (queued_funds, payee);\n            } else {\n                answer = commitments[commitment_id].revealed_answer;\n                delete commitments[commitment_id];\n            }\n        }\n\n        if (answer == best_answer) {\n\n            if (payee == NULL_ADDRESS) {\n\n                // The entry is for the first payee we come to, ie the winner.\n                // They get the question bounty.\n                payee = addr;\n                queued_funds = queued_funds.add(questions[question_id].bounty);\n                questions[question_id].bounty = 0;\n\n            } else if (addr != payee) {\n\n                // Answerer has changed, ie we found someone lower down who needs to be paid\n\n                // The lower answerer will take over receiving bonds from higher answerer.\n                // They should also be paid the takeover fee, which is set at a rate equivalent to their bond. \n                // (This is our arbitrary rule, to give consistent right-answerers a defence against high-rollers.)\n\n                // There should be enough for the fee, but if not, take what we have.\n                // There's an edge case involving weird arbitrator behaviour where we may be short.\n                uint256 answer_takeover_fee = (queued_funds >= bond) ? bond : queued_funds;\n\n                // Settle up with the old (higher-bonded) payee\n                _payPayee(question_id, payee, queued_funds.sub(answer_takeover_fee));\n\n                // Now start queued_funds again for the new (lower-bonded) payee\n                payee = addr;\n                queued_funds = answer_takeover_fee;\n\n            }\n\n        }\n\n        return (queued_funds, payee);\n\n    }\n\n    /// @notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n    /// Caller must provide the answer history for each question, in reverse order\n    /// @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n    /// @param question_ids The IDs of the questions you want to claim for\n    /// @param lengths The number of history entries you will supply for each question ID\n    /// @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n    /// @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n    /// @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n    /// @param answers In a single list for all supplied questions, each answer supplied, or commitment ID \n    function claimMultipleAndWithdrawBalance(\n        bytes32[] question_ids, uint256[] lengths, \n        bytes32[] hist_hashes, address[] addrs, uint256[] bonds, bytes32[] answers\n    ) \n        stateAny() // The finalization checks are done in the claimWinnings function\n    public {\n        \n        uint256 qi;\n        uint256 i;\n        for (qi = 0; qi < question_ids.length; qi++) {\n            bytes32 qid = question_ids[qi];\n            uint256 ln = lengths[qi];\n            bytes32[] memory hh = new bytes32[](ln);\n            address[] memory ad = new address[](ln);\n            uint256[] memory bo = new uint256[](ln);\n            bytes32[] memory an = new bytes32[](ln);\n            uint256 j;\n            for (j = 0; j < ln; j++) {\n                hh[j] = hist_hashes[i];\n                ad[j] = addrs[i];\n                bo[j] = bonds[i];\n                an[j] = answers[i];\n                i++;\n            }\n            claimWinnings(qid, hh, ad, bo, an);\n        }\n        withdraw();\n    }\n\n    /// @notice Returns the questions's content hash, identifying the question content\n    /// @param question_id The ID of the question \n    function getContentHash(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].content_hash;\n    }\n\n    /// @notice Returns the arbitrator address for the question\n    /// @param question_id The ID of the question \n    function getArbitrator(bytes32 question_id) \n    public view returns(address) {\n        return questions[question_id].arbitrator;\n    }\n\n    /// @notice Returns the timestamp when the question can first be answered\n    /// @param question_id The ID of the question \n    function getOpeningTS(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].opening_ts;\n    }\n\n    /// @notice Returns the timeout in seconds used after each answer\n    /// @param question_id The ID of the question \n    function getTimeout(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].timeout;\n    }\n\n    /// @notice Returns the timestamp at which the question will be/was finalized\n    /// @param question_id The ID of the question \n    function getFinalizeTS(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].finalize_ts;\n    }\n\n    /// @notice Returns whether the question is pending arbitration\n    /// @param question_id The ID of the question \n    function isPendingArbitration(bytes32 question_id) \n    public view returns(bool) {\n        return questions[question_id].is_pending_arbitration;\n    }\n\n    /// @notice Returns the current total unclaimed bounty\n    /// @dev Set back to zero once the bounty has been claimed\n    /// @param question_id The ID of the question \n    function getBounty(bytes32 question_id) \n    public view returns(uint256) {\n        return questions[question_id].bounty;\n    }\n\n    /// @notice Returns the current best answer\n    /// @param question_id The ID of the question \n    function getBestAnswer(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Returns the history hash of the question \n    /// @param question_id The ID of the question \n    /// @dev Updated on each answer, then rewound as each is claimed\n    function getHistoryHash(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].history_hash;\n    }\n\n    /// @notice Returns the highest bond posted so far for a question\n    /// @param question_id The ID of the question \n    function getBond(bytes32 question_id) \n    public view returns(uint256) {\n        return questions[question_id].bond;\n    }\n\n}\n",
  "sourcePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioERC20.sol",
  "ast": {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioERC20.sol",
    "exportedSymbols": {
      "RealitioERC20": [
        6825
      ]
    },
    "id": 6826,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4622,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:13"
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath256.sol",
        "file": "./RealitioSafeMath256.sol",
        "id": 4623,
        "nodeType": "ImportDirective",
        "scope": 6826,
        "sourceUnit": 6924,
        "src": "26:35:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath32.sol",
        "file": "./RealitioSafeMath32.sol",
        "id": 4624,
        "nodeType": "ImportDirective",
        "scope": 6826,
        "sourceUnit": 6951,
        "src": "62:34:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/BalanceHolderERC20.sol",
        "file": "./BalanceHolderERC20.sol",
        "id": 4625,
        "nodeType": "ImportDirective",
        "scope": 6826,
        "sourceUnit": 434,
        "src": "97:34:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4626,
              "name": "BalanceHolder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 433,
              "src": "159:13:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BalanceHolder_$433",
                "typeString": "contract BalanceHolder"
              }
            },
            "id": 4627,
            "nodeType": "InheritanceSpecifier",
            "src": "159:13:13"
          }
        ],
        "contractDependencies": [
          433
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6825,
        "linearizedBaseContracts": [
          6825,
          433
        ],
        "name": "RealitioERC20",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 4630,
            "libraryName": {
              "contractScope": null,
              "id": 4628,
              "name": "RealitioSafeMath256",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6923,
              "src": "186:19:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath256_$6923",
                "typeString": "library RealitioSafeMath256"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "180:38:13",
            "typeName": {
              "id": 4629,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "210:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 4633,
            "libraryName": {
              "contractScope": null,
              "id": 4631,
              "name": "RealitioSafeMath32",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6950,
              "src": "229:18:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath32_$6950",
                "typeString": "library RealitioSafeMath32"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "223:36:13",
            "typeName": {
              "id": 4632,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "252:6:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            }
          },
          {
            "constant": true,
            "id": 4638,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "265:42:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 4634,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "265:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 4636,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "305:1:13",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 4635,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "297:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 4637,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "297:10:13",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4643,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "390:39:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 4639,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "390:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 4641,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "427:1:13",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 4640,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "419:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 4642,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "419:10:13",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4646,
            "name": "UNANSWERED",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "524:30:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 4644,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "524:6:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4645,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "553:1:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4649,
            "name": "COMMITMENT_NON_EXISTENT",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "647:44:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4647,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "647:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4648,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "690:1:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4652,
            "name": "COMMITMENT_TIMEOUT_RATIO",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "775:44:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 4650,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "775:6:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 4651,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "818:1:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4658,
            "name": "LogSetQuestionFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4654,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4658,
                  "src": "859:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4653,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "859:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4656,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 4658,
                  "src": "887:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4655,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "887:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "849:58:13"
            },
            "src": "826:82:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4666,
            "name": "LogNewTemplate",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4665,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4660,
                  "indexed": true,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4666,
                  "src": "944:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4659,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "944:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4662,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4666,
                  "src": "981:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4661,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4664,
                  "indexed": false,
                  "name": "question_text",
                  "nodeType": "VariableDeclaration",
                  "scope": 4666,
                  "src": "1012:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4663,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "934:104:13"
            },
            "src": "914:125:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4688,
            "name": "LogNewQuestion",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4668,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1075:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4667,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1075:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4670,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1112:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4669,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1112:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4672,
                  "indexed": false,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1143:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4671,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1143:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4674,
                  "indexed": false,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1172:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4673,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1172:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4676,
                  "indexed": true,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1197:28:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4675,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1197:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4678,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1235:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4677,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1235:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4680,
                  "indexed": false,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1264:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4679,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4682,
                  "indexed": false,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1288:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4681,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1288:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4684,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1315:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4683,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1315:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4686,
                  "indexed": false,
                  "name": "created",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1338:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4685,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1338:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1065:294:13"
            },
            "src": "1045:315:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4698,
            "name": "LogFundAnswerBounty",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4697,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4690,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4698,
                  "src": "1401:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4689,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4692,
                  "indexed": false,
                  "name": "bounty_added",
                  "nodeType": "VariableDeclaration",
                  "scope": 4698,
                  "src": "1438:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4691,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1438:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4694,
                  "indexed": false,
                  "name": "bounty",
                  "nodeType": "VariableDeclaration",
                  "scope": 4698,
                  "src": "1468:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4693,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1468:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4696,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4698,
                  "src": "1492:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4695,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1492:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1391:128:13"
            },
            "src": "1366:154:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4714,
            "name": "LogNewAnswer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4700,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1554:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4699,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1554:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4702,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1578:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4701,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1578:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4704,
                  "indexed": false,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1615:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4703,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1615:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4706,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1645:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4705,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1645:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4708,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1675:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4707,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1675:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4710,
                  "indexed": false,
                  "name": "ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1697:10:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4709,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1697:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4712,
                  "indexed": false,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1717:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4711,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1717:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1544:197:13"
            },
            "src": "1526:216:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4728,
            "name": "LogAnswerReveal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4727,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4716,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1779:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4715,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1779:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4718,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1817:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4717,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1817:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4720,
                  "indexed": true,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1848:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4719,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1848:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4722,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1886:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4721,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1886:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4724,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1911:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4723,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1911:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4726,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1935:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4725,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1935:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1769:184:13"
            },
            "src": "1748:206:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4734,
            "name": "LogNotifyOfArbitrationRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4730,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4734,
                  "src": "2005:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4729,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2005:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4732,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4734,
                  "src": "2042:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4731,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2042:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1995:74:13"
            },
            "src": "1960:110:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4740,
            "name": "LogFinalize",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4739,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4736,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4740,
                  "src": "2103:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4735,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2103:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4738,
                  "indexed": true,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4740,
                  "src": "2140:22:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4737,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2140:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2093:75:13"
            },
            "src": "2076:93:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4748,
            "name": "LogClaim",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4742,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4748,
                  "src": "2199:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4741,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2199:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4744,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4748,
                  "src": "2236:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4743,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2236:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4746,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 4748,
                  "src": "2266:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4745,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2266:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2189:97:13"
            },
            "src": "2175:112:13"
          },
          {
            "canonicalName": "RealitioERC20.Question",
            "id": 4769,
            "members": [
              {
                "constant": false,
                "id": 4750,
                "name": "content_hash",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2319:20:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4749,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2319:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4752,
                "name": "arbitrator",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2349:18:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4751,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2349:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4754,
                "name": "opening_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2377:17:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4753,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2377:6:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4756,
                "name": "timeout",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2404:14:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4755,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2404:6:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4758,
                "name": "finalize_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2428:18:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4757,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2428:6:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4760,
                "name": "is_pending_arbitration",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2456:27:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 4759,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2456:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4762,
                "name": "bounty",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2493:14:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4761,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2493:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4764,
                "name": "best_answer",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2517:19:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4763,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2517:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4766,
                "name": "history_hash",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2546:20:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4765,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2546:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4768,
                "name": "bond",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2576:12:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4767,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2576:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Question",
            "nodeType": "StructDefinition",
            "scope": 6825,
            "src": "2293:302:13",
            "visibility": "public"
          },
          {
            "canonicalName": "RealitioERC20.Commitment",
            "id": 4776,
            "members": [
              {
                "constant": false,
                "id": 4771,
                "name": "reveal_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4776,
                "src": "2726:16:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4770,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2726:6:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4773,
                "name": "is_revealed",
                "nodeType": "VariableDeclaration",
                "scope": 4776,
                "src": "2752:16:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 4772,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2752:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4775,
                "name": "revealed_answer",
                "nodeType": "VariableDeclaration",
                "scope": 4776,
                "src": "2778:23:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4774,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2778:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Commitment",
            "nodeType": "StructDefinition",
            "scope": 6825,
            "src": "2698:110:13",
            "visibility": "public"
          },
          {
            "canonicalName": "RealitioERC20.Claim",
            "id": 4783,
            "members": [
              {
                "constant": false,
                "id": 4778,
                "name": "payee",
                "nodeType": "VariableDeclaration",
                "scope": 4783,
                "src": "2959:13:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4777,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2959:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4780,
                "name": "last_bond",
                "nodeType": "VariableDeclaration",
                "scope": 4783,
                "src": "2982:17:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4779,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2982:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4782,
                "name": "queued_funds",
                "nodeType": "VariableDeclaration",
                "scope": 4783,
                "src": "3009:20:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4781,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3009:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 6825,
            "src": "2936:100:13",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4786,
            "name": "nextTemplateID",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3042:26:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4784,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "3042:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4785,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3067:1:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4790,
            "name": "templates",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3074:44:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 4789,
              "keyType": {
                "id": 4787,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3082:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3074:27:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueType": {
                "id": 4788,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3093:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4794,
            "name": "template_hashes",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3124:50:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
              "typeString": "mapping(uint256 => bytes32)"
            },
            "typeName": {
              "id": 4793,
              "keyType": {
                "id": 4791,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3132:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3124:27:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                "typeString": "mapping(uint256 => bytes32)"
              },
              "valueType": {
                "id": 4792,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3143:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4798,
            "name": "questions",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3180:45:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
            },
            "typeName": {
              "id": 4797,
              "keyType": {
                "id": 4795,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3188:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3180:28:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4796,
                "name": "Question",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4769,
                "src": "3199:8:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$4769_storage_ptr",
                  "typeString": "struct RealitioERC20.Question"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4802,
            "name": "question_claims",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3231:48:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
            },
            "typeName": {
              "id": 4801,
              "keyType": {
                "id": 4799,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3239:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3231:25:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4800,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4783,
                "src": "3250:5:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$4783_storage_ptr",
                  "typeString": "struct RealitioERC20.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4806,
            "name": "commitments",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3285:49:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
            },
            "typeName": {
              "id": 4805,
              "keyType": {
                "id": 4803,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3293:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3285:30:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4804,
                "name": "Commitment",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4776,
                "src": "3304:10:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$4776_storage_ptr",
                  "typeString": "struct RealitioERC20.Commitment"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4810,
            "name": "arbitrator_question_fees",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3340:59:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 4809,
              "keyType": {
                "id": 4807,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3348:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3340:27:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 4808,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3359:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4826,
              "nodeType": "Block",
              "src": "3452:117:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 4821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4815,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7352,
                            "src": "3470:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 4816,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3470:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4817,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "3484:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4819,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4818,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4812,
                              "src": "3494:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3484:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4820,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4752,
                          "src": "3484:33:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3470:47:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
                        "id": 4822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3519:31:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        },
                        "value": "msg.sender must be arbitrator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        }
                      ],
                      "id": 4814,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "3462:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3462:89:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4824,
                  "nodeType": "ExpressionStatement",
                  "src": "3462:89:13"
                },
                {
                  "id": 4825,
                  "nodeType": "PlaceholderStatement",
                  "src": "3561:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4827,
            "name": "onlyArbitrator",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4813,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4812,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4827,
                  "src": "3431:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4811,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3431:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3430:21:13"
            },
            "src": "3407:162:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4830,
              "nodeType": "Block",
              "src": "3595:18:13",
              "statements": [
                {
                  "id": 4829,
                  "nodeType": "PlaceholderStatement",
                  "src": "3605:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4831,
            "name": "stateAny",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4828,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3592:2:13"
            },
            "src": "3575:38:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4846,
              "nodeType": "Block",
              "src": "3665:99:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4841,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4836,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "3683:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4838,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4837,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4833,
                              "src": "3693:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3683:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4839,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4756,
                          "src": "3683:30:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4840,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3717:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3683:35:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
                        "id": 4842,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3720:25:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        },
                        "value": "question must not exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        }
                      ],
                      "id": 4835,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "3675:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4843,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3675:71:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4844,
                  "nodeType": "ExpressionStatement",
                  "src": "3675:71:13"
                },
                {
                  "id": 4845,
                  "nodeType": "PlaceholderStatement",
                  "src": "3756:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4847,
            "name": "stateNotCreated",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4833,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4847,
                  "src": "3644:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4832,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3644:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3643:21:13"
            },
            "src": "3619:145:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4911,
              "nodeType": "Block",
              "src": "3810:547:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4852,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "3828:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4854,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4853,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4849,
                              "src": "3838:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3828:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4855,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4756,
                          "src": "3828:30:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3861:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3828:34:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 4858,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3864:21:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 4851,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "3820:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4859,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3820:66:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4860,
                  "nodeType": "ExpressionStatement",
                  "src": "3820:66:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3904:46:13",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4862,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "3905:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4864,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4863,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4849,
                              "src": "3915:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3905:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4865,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_pending_arbitration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4760,
                          "src": "3905:45:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
                        "id": 4867,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3952:42:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        },
                        "value": "question must not be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        }
                      ],
                      "id": 4861,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "3896:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4868,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3896:99:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4869,
                  "nodeType": "ExpressionStatement",
                  "src": "3896:99:13"
                },
                {
                  "assignments": [
                    4871
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4871,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 4912,
                      "src": "4005:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 4870,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4005:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4876,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4872,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "4026:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 4874,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4873,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4849,
                        "src": "4036:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4026:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 4875,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4758,
                    "src": "4026:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4005:55:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4886,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4880,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4878,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4871,
                            "src": "4078:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4879,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4646,
                            "src": "4093:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4078:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4885,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4881,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4871,
                            "src": "4107:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4883,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7354,
                                "src": "4128:3:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4882,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4121:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 4884,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4121:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4107:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4078:54:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 4887,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4134:44:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        },
                        "value": "finalization deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        }
                      ],
                      "id": 4877,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4070:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4070:109:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4889,
                  "nodeType": "ExpressionStatement",
                  "src": "4070:109:13"
                },
                {
                  "assignments": [
                    4891
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4891,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 4912,
                      "src": "4189:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 4890,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4189:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4896,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4892,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "4209:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 4894,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4893,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4849,
                        "src": "4219:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4209:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 4895,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4754,
                    "src": "4209:33:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4189:53:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4906,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4900,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4898,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4891,
                            "src": "4260:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4899,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4274:1:13",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4260:15:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4905,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4901,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4891,
                            "src": "4279:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4903,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7354,
                                "src": "4300:3:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4902,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4293:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 4904,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4293:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4279:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4260:44:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 4907,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4306:31:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 4897,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4252:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4252:86:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4909,
                  "nodeType": "ExpressionStatement",
                  "src": "4252:86:13"
                },
                {
                  "id": 4910,
                  "nodeType": "PlaceholderStatement",
                  "src": "4349:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4912,
            "name": "stateOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4850,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4849,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4912,
                  "src": "3789:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4848,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3789:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3788:21:13"
            },
            "src": "3770:587:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4925,
              "nodeType": "Block",
              "src": "4417:122:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4917,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4798,
                            "src": "4435:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 4919,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4918,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4914,
                            "src": "4445:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4435:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4769_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 4920,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "is_pending_arbitration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4760,
                        "src": "4435:45:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
                        "id": 4921,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4482:38:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        },
                        "value": "question must be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        }
                      ],
                      "id": 4916,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4427:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4427:94:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4923,
                  "nodeType": "ExpressionStatement",
                  "src": "4427:94:13"
                },
                {
                  "id": 4924,
                  "nodeType": "PlaceholderStatement",
                  "src": "4531:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4926,
            "name": "statePendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4914,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4926,
                  "src": "4396:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4913,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4396:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4395:21:13"
            },
            "src": "4363:176:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4981,
              "nodeType": "Block",
              "src": "4605:437:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4931,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "4623:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4933,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4932,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4928,
                              "src": "4633:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4623:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4934,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4756,
                          "src": "4623:30:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4935,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4656:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4623:34:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 4937,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4659:21:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 4930,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4615:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4938,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4615:66:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4939,
                  "nodeType": "ExpressionStatement",
                  "src": "4615:66:13"
                },
                {
                  "assignments": [
                    4941
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4941,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 4982,
                      "src": "4691:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 4940,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4691:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4946,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4942,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "4712:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 4944,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4943,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4928,
                        "src": "4722:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4712:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 4945,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4758,
                    "src": "4712:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4691:55:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4956,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4950,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4948,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4941,
                            "src": "4764:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4949,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4646,
                            "src": "4779:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4764:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4955,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4951,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4941,
                            "src": "4793:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4953,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7354,
                                "src": "4814:3:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4952,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4807:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 4954,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4807:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4793:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4764:54:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
                        "id": 4957,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4820:43:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        },
                        "value": "finalization dealine must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        }
                      ],
                      "id": 4947,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4756:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4958,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4756:108:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4959,
                  "nodeType": "ExpressionStatement",
                  "src": "4756:108:13"
                },
                {
                  "assignments": [
                    4961
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4961,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 4982,
                      "src": "4874:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 4960,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4874:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4966,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4962,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "4894:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 4964,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4963,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4928,
                        "src": "4904:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4894:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 4965,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4754,
                    "src": "4894:33:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4874:53:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4976,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4968,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4961,
                            "src": "4945:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4969,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4959:1:13",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4945:15:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4975,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4971,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4961,
                            "src": "4964:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4973,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7354,
                                "src": "4985:3:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4972,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4978:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 4974,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4978:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4964:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4945:44:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 4977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4991:31:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 4967,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4937:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4937:86:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4979,
                  "nodeType": "ExpressionStatement",
                  "src": "4937:86:13"
                },
                {
                  "id": 4980,
                  "nodeType": "PlaceholderStatement",
                  "src": "5034:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4982,
            "name": "stateOpenOrPendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4929,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4928,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4982,
                  "src": "4584:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4927,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4584:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4583:21:13"
            },
            "src": "4545:497:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4994,
              "nodeType": "Block",
              "src": "5093:91:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4988,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4984,
                            "src": "5123:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4987,
                          "name": "isFinalized",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6035,
                          "src": "5111:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 4989,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5111:24:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
                        "id": 4990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5137:28:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        },
                        "value": "question must be finalized"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        }
                      ],
                      "id": 4986,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "5103:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5103:63:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4992,
                  "nodeType": "ExpressionStatement",
                  "src": "5103:63:13"
                },
                {
                  "id": 4993,
                  "nodeType": "PlaceholderStatement",
                  "src": "5176:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4995,
            "name": "stateFinalized",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4985,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4984,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4995,
                  "src": "5072:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4983,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5072:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5071:21:13"
            },
            "src": "5048:136:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5023,
              "nodeType": "Block",
              "src": "5251:184:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5004,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5002,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4999,
                          "src": "5269:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5003,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5278:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5269:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520706f736974697665",
                        "id": 5005,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5281:23:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        },
                        "value": "bond must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        }
                      ],
                      "id": 5001,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "5261:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5261:44:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5007,
                  "nodeType": "ExpressionStatement",
                  "src": "5261:44:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5009,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4999,
                          "src": "5324:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 5015,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5367:1:13",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 5010,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4798,
                                      "src": "5335:9:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                      }
                                    },
                                    "id": 5012,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 5011,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4997,
                                      "src": "5345:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5335:22:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$4769_storage",
                                      "typeString": "struct RealitioERC20.Question storage ref"
                                    }
                                  },
                                  "id": 5013,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "bond",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4768,
                                  "src": "5335:27:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 5014,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "mul",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6860,
                                "src": "5335:31:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 5016,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5335:34:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 5017,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5334:36:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5324:46:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
                        "id": 5019,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5372:44:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        },
                        "value": "bond must be double at least previous bond"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        }
                      ],
                      "id": 5008,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "5316:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5316:101:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5021,
                  "nodeType": "ExpressionStatement",
                  "src": "5316:101:13"
                },
                {
                  "id": 5022,
                  "nodeType": "PlaceholderStatement",
                  "src": "5427:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 5024,
            "name": "bondMustDouble",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4997,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5024,
                  "src": "5214:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4996,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5214:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4999,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5024,
                  "src": "5235:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4998,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5235:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5213:37:13"
            },
            "src": "5190:245:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5046,
              "nodeType": "Block",
              "src": "5528:159:13",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5032,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5030,
                      "name": "max_previous",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5028,
                      "src": "5542:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5031,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5557:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5542:16:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5044,
                  "nodeType": "IfStatement",
                  "src": "5538:132:13",
                  "trueBody": {
                    "id": 5043,
                    "nodeType": "Block",
                    "src": "5560:110:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 5039,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5034,
                                    "name": "questions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4798,
                                    "src": "5582:9:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                    }
                                  },
                                  "id": 5036,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 5035,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5026,
                                    "src": "5592:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5582:22:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Question_$4769_storage",
                                    "typeString": "struct RealitioERC20.Question storage ref"
                                  }
                                },
                                "id": 5037,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "bond",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4768,
                                "src": "5582:27:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 5038,
                                "name": "max_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5028,
                                "src": "5613:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5582:43:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
                              "id": 5040,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5627:31:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              },
                              "value": "bond must exceed max_previous"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              }
                            ],
                            "id": 5033,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              7355,
                              7356
                            ],
                            "referencedDeclaration": 7356,
                            "src": "5574:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5041,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5574:85:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5042,
                        "nodeType": "ExpressionStatement",
                        "src": "5574:85:13"
                      }
                    ]
                  }
                },
                {
                  "id": 5045,
                  "nodeType": "PlaceholderStatement",
                  "src": "5679:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 5047,
            "name": "previousBondMustNotBeatMaxPrevious",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5026,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5047,
                  "src": "5485:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5025,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5485:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5028,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5047,
                  "src": "5506:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5506:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5484:43:13"
            },
            "src": "5441:246:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5065,
              "nodeType": "Block",
              "src": "5742:108:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_contract$_IERC20_$1173",
                          "typeString": "contract IERC20"
                        },
                        "id": 5057,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5053,
                          "name": "token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 389,
                          "src": "5760:5:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$1173",
                            "typeString": "contract IERC20"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 5055,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5776:3:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 5054,
                            "name": "IERC20",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1173,
                            "src": "5769:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IERC20_$1173_$",
                              "typeString": "type(contract IERC20)"
                            }
                          },
                          "id": 5056,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5769:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$1173",
                            "typeString": "contract IERC20"
                          }
                        },
                        "src": "5760:20:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e6365",
                        "id": 5058,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5782:36:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
                          "typeString": "literal_string \"Token can only be initialized once\""
                        },
                        "value": "Token can only be initialized once"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
                          "typeString": "literal_string \"Token can only be initialized once\""
                        }
                      ],
                      "id": 5052,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "5752:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5752:67:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5060,
                  "nodeType": "ExpressionStatement",
                  "src": "5752:67:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5061,
                      "name": "token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 389,
                      "src": "5829:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$1173",
                        "typeString": "contract IERC20"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5062,
                      "name": "_token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5049,
                      "src": "5837:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$1173",
                        "typeString": "contract IERC20"
                      }
                    },
                    "src": "5829:14:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1173",
                      "typeString": "contract IERC20"
                    }
                  },
                  "id": 5064,
                  "nodeType": "ExpressionStatement",
                  "src": "5829:14:13"
                }
              ]
            },
            "documentation": null,
            "id": 5066,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5050,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5049,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 5066,
                  "src": "5711:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$1173",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5048,
                    "name": "IERC20",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1173,
                    "src": "5711:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1173",
                      "typeString": "contract IERC20"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5710:15:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5051,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5742:0:13"
            },
            "scope": 6825,
            "src": "5693:157:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5089,
              "nodeType": "Block",
              "src": "6037:538:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5070,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6062:65:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5069,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6047:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6047:81:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5072,
                  "nodeType": "ExpressionStatement",
                  "src": "6047:81:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5074,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6153:81:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5073,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6138:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5075,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6138:97:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5076,
                  "nodeType": "ExpressionStatement",
                  "src": "6138:97:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5078,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6260:92:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5077,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6245:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6245:108:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5080,
                  "nodeType": "ExpressionStatement",
                  "src": "6245:108:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5082,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6378:94:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5081,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6363:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6363:110:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5084,
                  "nodeType": "ExpressionStatement",
                  "src": "6363:110:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5086,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6498:69:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5085,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6483:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5087,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6483:85:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5088,
                  "nodeType": "ExpressionStatement",
                  "src": "6483:85:13"
                }
              ]
            },
            "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.",
            "id": 5090,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5067,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6022:2:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5068,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6037:0:13"
            },
            "scope": 6825,
            "src": "6011:564:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5110,
              "nodeType": "Block",
              "src": "6920:108:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5097,
                        "name": "arbitrator_question_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4810,
                        "src": "6930:24:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 5100,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5098,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "6955:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6955:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6930:36:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5101,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5092,
                      "src": "6969:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6930:42:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5103,
                  "nodeType": "ExpressionStatement",
                  "src": "6930:42:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5105,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "7005:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5106,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7005:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5107,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5092,
                        "src": "7017:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5104,
                      "name": "LogSetQuestionFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4658,
                      "src": "6987:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5108,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6987:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5109,
                  "nodeType": "EmitStatement",
                  "src": "6982:39:13"
                }
              ]
            },
            "documentation": "@notice Function for arbitrator to set an optional per-question fee. \n @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n @param fee The fee to be charged by the arbitrator when a question is asked",
            "id": 5111,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 5095,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5094,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4831,
                  "src": "6895:8:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6895:10:13"
              }
            ],
            "name": "setQuestionFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5093,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5092,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 5111,
                  "src": "6873:11:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5091,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6873:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6872:13:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5096,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6920:0:13"
            },
            "scope": 6825,
            "src": "6849:179:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5158,
              "nodeType": "Block",
              "src": "7497:259:13",
              "statements": [
                {
                  "assignments": [
                    5121
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5121,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5159,
                      "src": "7507:10:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5120,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7507:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5123,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 5122,
                    "name": "nextTemplateID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4786,
                    "src": "7520:14:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7507:27:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5124,
                        "name": "templates",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4790,
                        "src": "7544:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 5126,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5125,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5121,
                        "src": "7554:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7544:13:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5127,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7342,
                        "src": "7560:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 5128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7560:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7544:28:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5130,
                  "nodeType": "ExpressionStatement",
                  "src": "7544:28:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5131,
                        "name": "template_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4794,
                        "src": "7582:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                          "typeString": "mapping(uint256 => bytes32)"
                        }
                      },
                      "id": 5133,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5132,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5121,
                        "src": "7598:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7582:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5137,
                              "name": "content",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5113,
                              "src": "7631:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5135,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7339,
                              "src": "7614:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 5136,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7614:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 5138,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7614:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 5134,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7346,
                        "src": "7604:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 5139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7604:36:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7582:58:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5141,
                  "nodeType": "ExpressionStatement",
                  "src": "7582:58:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5143,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5121,
                        "src": "7670:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5144,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "7674:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7674:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5146,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5113,
                        "src": "7686:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5142,
                      "name": "LogNewTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4666,
                      "src": "7655:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,address,string memory)"
                      }
                    },
                    "id": 5147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7655:39:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5148,
                  "nodeType": "EmitStatement",
                  "src": "7650:44:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5149,
                      "name": "nextTemplateID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4786,
                      "src": "7704:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5152,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7728:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 5150,
                          "name": "id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5121,
                          "src": "7721:2:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6922,
                        "src": "7721:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7721:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7704:26:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5155,
                  "nodeType": "ExpressionStatement",
                  "src": "7704:26:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5156,
                    "name": "id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5121,
                    "src": "7747:2:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5119,
                  "id": 5157,
                  "nodeType": "Return",
                  "src": "7740:9:13"
                }
              ]
            },
            "documentation": "@notice Create a reusable template, which should be a JSON document.\n Placeholders should use gettext() syntax, eg %s.\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 5159,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 5116,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5115,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4831,
                  "src": "7457:8:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7457:10:13"
              }
            ],
            "name": "createTemplate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5114,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5113,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 5159,
                  "src": "7432:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5112,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7432:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7431:16:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5118,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5159,
                  "src": "7488:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5117,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7488:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7487:9:13"
            },
            "scope": 6825,
            "src": "7408:348:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5191,
              "nodeType": "Block",
              "src": "8893:153:13",
              "statements": [
                {
                  "assignments": [
                    5177
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5177,
                      "name": "template_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5192,
                      "src": "8903:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5176,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8903:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5181,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5179,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5161,
                        "src": "8940:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5178,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "8925:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8925:23:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8903:45:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5183,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5177,
                        "src": "8977:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5184,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5163,
                        "src": "8990:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5185,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5165,
                        "src": "9000:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5186,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5167,
                        "src": "9012:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5187,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5169,
                        "src": "9021:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5188,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5171,
                        "src": "9033:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5182,
                      "name": "askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5269,
                      "src": "8965:11:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory,address,uint32,uint32,uint256) returns (bytes32)"
                      }
                    },
                    "id": 5189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8965:74:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5175,
                  "id": 5190,
                  "nodeType": "Return",
                  "src": "8958:81:13"
                }
              ]
            },
            "documentation": "@notice Create a new reusable template and use it to ask a question\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 5192,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createTemplateAndAskQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5172,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5161,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8677:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5160,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8677:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5163,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8702:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5162,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8702:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5165,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8719:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5164,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8719:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5167,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8739:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5166,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8739:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5169,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8755:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5168,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8755:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5171,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8774:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5170,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8774:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8667:127:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5174,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8884:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5173,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8884:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8883:9:13"
            },
            "scope": 6825,
            "src": "8630:416:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5268,
              "nodeType": "Block",
              "src": "10398:536:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5214,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5210,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4790,
                            "src": "10417:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 5212,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5211,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5194,
                            "src": "10427:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10417:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5213,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10442:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10417:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 5215,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10445:21:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 5209,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "10409:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10409:58:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5217,
                  "nodeType": "ExpressionStatement",
                  "src": "10409:58:13"
                },
                {
                  "assignments": [
                    5219
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5219,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5269,
                      "src": "10478:20:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5218,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10478:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5228,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5223,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5194,
                            "src": "10528:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5224,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5202,
                            "src": "10541:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5225,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5196,
                            "src": "10553:8:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5221,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "10511:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10511:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5226,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10511:51:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5220,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "10501:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5227,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10501:62:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10478:85:13"
                },
                {
                  "assignments": [
                    5230
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5230,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5269,
                      "src": "10573:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5229,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10573:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5242,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5234,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5219,
                            "src": "10622:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5235,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5198,
                            "src": "10636:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5236,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5200,
                            "src": "10648:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5237,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7352,
                              "src": "10657:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5238,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10657:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5239,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5204,
                            "src": "10669:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5232,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "10605:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10605:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5240,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10605:70:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5231,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "10595:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5241,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10595:81:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10573:103:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5244,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5230,
                        "src": "10700:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5245,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5219,
                        "src": "10713:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5246,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5198,
                        "src": "10727:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5247,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5200,
                        "src": "10739:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5248,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5202,
                        "src": "10748:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5249,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10760:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 5243,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5537,
                      "src": "10687:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
                      }
                    },
                    "id": 5250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10687:75:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5251,
                  "nodeType": "ExpressionStatement",
                  "src": "10687:75:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5253,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5230,
                        "src": "10792:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5254,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "10805:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5255,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10805:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5256,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5194,
                        "src": "10817:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5257,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5196,
                        "src": "10830:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5258,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5219,
                        "src": "10840:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5259,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5198,
                        "src": "10854:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5260,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5200,
                        "src": "10866:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5261,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5202,
                        "src": "10875:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5262,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5204,
                        "src": "10887:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5263,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7354,
                        "src": "10894:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5252,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4688,
                      "src": "10777:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 5264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10777:121:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5265,
                  "nodeType": "EmitStatement",
                  "src": "10772:126:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5266,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5230,
                    "src": "10916:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5208,
                  "id": 5267,
                  "nodeType": "Return",
                  "src": "10909:18:13"
                }
              ]
            },
            "documentation": "@notice Ask a new question without a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created question, created deterministically.",
            "id": 5269,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5194,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10192:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5193,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10192:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5196,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10213:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5195,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "10213:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5198,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10230:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5197,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10230:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5200,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10250:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5199,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10250:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5202,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10266:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5201,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10266:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5204,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10285:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10285:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10191:108:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5207,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10389:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5206,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10389:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10388:9:13"
            },
            "scope": 6825,
            "src": "10171:763:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5351,
              "nodeType": "Block",
              "src": "12154:581:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5289,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5283,
                        "src": "12187:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5288,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5421,
                      "src": "12165:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5290,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12165:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5291,
                  "nodeType": "ExpressionStatement",
                  "src": "12165:29:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5297,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5293,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4790,
                            "src": "12213:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 5295,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5294,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5271,
                            "src": "12223:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12213:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5296,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12238:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12213:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 5298,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12241:21:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 5292,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "12205:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12205:58:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5300,
                  "nodeType": "ExpressionStatement",
                  "src": "12205:58:13"
                },
                {
                  "assignments": [
                    5302
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5302,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5352,
                      "src": "12274:20:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5301,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12274:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5311,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5306,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5271,
                            "src": "12324:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5307,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5279,
                            "src": "12337:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5308,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5273,
                            "src": "12349:8:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5304,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "12307:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5305,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12307:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5309,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12307:51:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5303,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "12297:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5310,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12297:62:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12274:85:13"
                },
                {
                  "assignments": [
                    5313
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5313,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5352,
                      "src": "12369:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5312,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12369:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5325,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5317,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5302,
                            "src": "12418:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5318,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5275,
                            "src": "12432:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5319,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5277,
                            "src": "12444:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5320,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7352,
                              "src": "12453:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5321,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12453:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5322,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5281,
                            "src": "12465:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5315,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "12401:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5316,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12401:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12401:70:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5314,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "12391:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12391:81:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12369:103:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5327,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5313,
                        "src": "12496:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5328,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5302,
                        "src": "12509:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5329,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5275,
                        "src": "12523:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5330,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5277,
                        "src": "12535:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5331,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "12544:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5332,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5283,
                        "src": "12556:6:13",
                        "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_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5326,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5537,
                      "src": "12483:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
                      }
                    },
                    "id": 5333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12483:80:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5334,
                  "nodeType": "ExpressionStatement",
                  "src": "12483:80:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5336,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5313,
                        "src": "12593:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5337,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "12606:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5338,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12606:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5339,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5271,
                        "src": "12618:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5340,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5273,
                        "src": "12631:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5341,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5302,
                        "src": "12641:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5342,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5275,
                        "src": "12655:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5343,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5277,
                        "src": "12667:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5344,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "12676:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5345,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5281,
                        "src": "12688:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5346,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7354,
                        "src": "12695:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5335,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4688,
                      "src": "12578:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 5347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12578:121:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5348,
                  "nodeType": "EmitStatement",
                  "src": "12573:126:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5349,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5313,
                    "src": "12717:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5287,
                  "id": 5350,
                  "nodeType": "Return",
                  "src": "12710:18:13"
                }
              ]
            },
            "documentation": "@notice Ask a new question with a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @param tokens The combined initial question bounty and question fee\n @return The ID of the newly-created question, created deterministically.",
            "id": 5352,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestionERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5284,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5271,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "11932:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5270,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11932:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5273,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "11953:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5272,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11953:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5275,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "11970:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5274,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11970:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5277,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "11990:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5276,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11990:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5279,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "12006:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5278,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12006:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5281,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "12025:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5280,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12025:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5283,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "12040:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5282,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12040:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11931:124:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5287,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5286,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "12145:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5285,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12145:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12144:9:13"
            },
            "scope": 6825,
            "src": "11906:829:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5420,
              "nodeType": "Block",
              "src": "12802:646:13",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5359,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5357,
                      "name": "tokens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5354,
                      "src": "12817:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5358,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12827:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12817:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5362,
                  "nodeType": "IfStatement",
                  "src": "12813:48:13",
                  "trueBody": {
                    "id": 5361,
                    "nodeType": "Block",
                    "src": "12830:31:13",
                    "statements": [
                      {
                        "expression": null,
                        "functionReturnParameters": 5356,
                        "id": 5360,
                        "nodeType": "Return",
                        "src": "12844:7:13"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    5364
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5364,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 5421,
                      "src": "12871:11:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5363,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12871:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5369,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5365,
                      "name": "balanceOf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 393,
                      "src": "12885:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 5368,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5366,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7352,
                        "src": "12895:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5367,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12895:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12885:21:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12871:35:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5370,
                      "name": "bal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5364,
                      "src": "12990:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5371,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12996:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12990:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5405,
                  "nodeType": "IfStatement",
                  "src": "12986:258:13",
                  "trueBody": {
                    "id": 5404,
                    "nodeType": "Block",
                    "src": "12999:245:13",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5375,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5373,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5364,
                            "src": "13017:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5374,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5354,
                            "src": "13024:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13017:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 5402,
                          "nodeType": "Block",
                          "src": "13134:100:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5393,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 5388,
                                  "name": "tokens",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5354,
                                  "src": "13152:6:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 5391,
                                      "name": "bal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5364,
                                      "src": "13172:3:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5389,
                                      "name": "tokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5354,
                                      "src": "13161:6:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5390,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6898,
                                    "src": "13161:10:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 5392,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13161:15:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13152:24:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5394,
                              "nodeType": "ExpressionStatement",
                              "src": "13152:24:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5400,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5395,
                                    "name": "balanceOf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 393,
                                    "src": "13194:9:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 5398,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5396,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7352,
                                      "src": "13204:3:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5397,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "13204:10:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13194:21:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 5399,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13218:1:13",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13194:25:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5401,
                              "nodeType": "ExpressionStatement",
                              "src": "13194:25:13"
                            }
                          ]
                        },
                        "id": 5403,
                        "nodeType": "IfStatement",
                        "src": "13013:221:13",
                        "trueBody": {
                          "id": 5387,
                          "nodeType": "Block",
                          "src": "13032:96:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5384,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5376,
                                    "name": "balanceOf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 393,
                                    "src": "13050:9:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 5379,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5377,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7352,
                                      "src": "13060:3:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5378,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "13060:10:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13050:21:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 5382,
                                      "name": "tokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5354,
                                      "src": "13082:6:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5380,
                                      "name": "bal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5364,
                                      "src": "13074:3:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5381,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6898,
                                    "src": "13074:7:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 5383,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13074:15:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13050:39:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5385,
                              "nodeType": "ExpressionStatement",
                              "src": "13050:39:13"
                            },
                            {
                              "expression": null,
                              "functionReturnParameters": 5356,
                              "id": 5386,
                              "nodeType": "Return",
                              "src": "13107:7:13"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5409,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7352,
                              "src": "13328:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "13328:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5412,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7399,
                                "src": "13348:4:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_RealitioERC20_$6825",
                                  "typeString": "contract RealitioERC20"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_RealitioERC20_$6825",
                                  "typeString": "contract RealitioERC20"
                                }
                              ],
                              "id": 5411,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "13340:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 5413,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13340:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5414,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5354,
                            "src": "13355:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5407,
                            "name": "token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 389,
                            "src": "13309:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$1173",
                              "typeString": "contract IERC20"
                            }
                          },
                          "id": 5408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1156,
                          "src": "13309:18:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256) external returns (bool)"
                          }
                        },
                        "id": 5415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13309:53:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756666696369656e7420617070726f7665642062616c616e63653f",
                        "id": 5416,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13364:59:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
                          "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
                        },
                        "value": "Transfer of tokens failed, insufficient approved balance?"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
                          "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
                        }
                      ],
                      "id": 5406,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "13301:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5417,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13301:123:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5418,
                  "nodeType": "ExpressionStatement",
                  "src": "13301:123:13"
                },
                {
                  "expression": null,
                  "functionReturnParameters": 5356,
                  "id": 5419,
                  "nodeType": "Return",
                  "src": "13434:7:13"
                }
              ]
            },
            "documentation": null,
            "id": 5421,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_deductTokensOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5354,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5421,
                  "src": "12772:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5353,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12772:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12771:16:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5356,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12802:0:13"
            },
            "scope": 6825,
            "src": "12741:707:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5536,
              "nodeType": "Block",
              "src": "13641:1316:13",
              "statements": [
                {
                  "assignments": [
                    5440
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5440,
                      "name": "bounty",
                      "nodeType": "VariableDeclaration",
                      "scope": 5537,
                      "src": "13652:14:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5439,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13652:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5442,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 5441,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5433,
                    "src": "13669:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13652:23:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5446,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5444,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5429,
                          "src": "13776:7:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5445,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13786:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "13776:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d75737420626520706f736974697665",
                        "id": 5447,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13789:26:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        },
                        "value": "timeout must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        }
                      ],
                      "id": 5443,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "13768:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13768:48:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5449,
                  "nodeType": "ExpressionStatement",
                  "src": "13768:48:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5453,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5451,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5429,
                          "src": "13835:7:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "333635",
                          "id": 5452,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13845:8:13",
                          "subdenomination": "days",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "365"
                        },
                        "src": "13835:18:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
                        "id": 5454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13855:36:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        },
                        "value": "timeout must be less than 365 days"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        }
                      ],
                      "id": 5450,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "13827:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13827:65:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5456,
                  "nodeType": "ExpressionStatement",
                  "src": "13827:65:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5460,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5458,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5427,
                          "src": "13911:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5459,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4638,
                          "src": "13925:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "13911:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d75737420626520736574",
                        "id": 5461,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13939:24:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        },
                        "value": "arbitrator must be set"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        }
                      ],
                      "id": 5457,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "13903:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13903:61:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5463,
                  "nodeType": "ExpressionStatement",
                  "src": "13903:61:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 5467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5464,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7352,
                        "src": "14356:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5465,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "14356:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 5466,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5427,
                      "src": "14370:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14356:24:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5500,
                  "nodeType": "IfStatement",
                  "src": "14352:327:13",
                  "trueBody": {
                    "id": 5499,
                    "nodeType": "Block",
                    "src": "14382:297:13",
                    "statements": [
                      {
                        "assignments": [
                          5469
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5469,
                            "name": "question_fee",
                            "nodeType": "VariableDeclaration",
                            "scope": 5537,
                            "src": "14396:20:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5468,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "14396:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5473,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5470,
                            "name": "arbitrator_question_fees",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4810,
                            "src": "14419:24:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 5472,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5471,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5427,
                            "src": "14444:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "14419:36:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "14396:59:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 5477,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 5475,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5440,
                                "src": "14477:6:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 5476,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5469,
                                "src": "14487:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "14477:22:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "546f6b656e732070726f7669646564206d75737420636f766572207175657374696f6e20666565",
                              "id": 5478,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14501:41:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_ed62e475d1700c11321de4f059b593d66013ce61fc0c18f9061af3ba4070ff86",
                                "typeString": "literal_string \"Tokens provided must cover question fee\""
                              },
                              "value": "Tokens provided must cover question fee"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_ed62e475d1700c11321de4f059b593d66013ce61fc0c18f9061af3ba4070ff86",
                                "typeString": "literal_string \"Tokens provided must cover question fee\""
                              }
                            ],
                            "id": 5474,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              7355,
                              7356
                            ],
                            "referencedDeclaration": 7356,
                            "src": "14469:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14469:74:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5480,
                        "nodeType": "ExpressionStatement",
                        "src": "14469:74:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5486,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 5481,
                            "name": "bounty",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5440,
                            "src": "14558:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5484,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5469,
                                "src": "14578:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 5482,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5440,
                                "src": "14567:6:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5483,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6898,
                              "src": "14567:10:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5485,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14567:24:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14558:33:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5487,
                        "nodeType": "ExpressionStatement",
                        "src": "14558:33:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5488,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 393,
                              "src": "14605:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 5490,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5489,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5427,
                              "src": "14615:10:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14605:21:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5495,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5469,
                                "src": "14655:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5491,
                                  "name": "balanceOf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 393,
                                  "src": "14629:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 5493,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5492,
                                  "name": "arbitrator",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5427,
                                  "src": "14639:10:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "14629:21:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5494,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6922,
                              "src": "14629:25:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14629:39:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14605:63:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5498,
                        "nodeType": "ExpressionStatement",
                        "src": "14605:63:13"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5506,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5501,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14689:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5502,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14699:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14689:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5504,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "content_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4750,
                      "src": "14689:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5505,
                      "name": "content_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5425,
                      "src": "14727:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "14689:50:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5507,
                  "nodeType": "ExpressionStatement",
                  "src": "14689:50:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5513,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5508,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14749:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5510,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5509,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14759:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14749:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5511,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "arbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4752,
                      "src": "14749:33:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5512,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5427,
                      "src": "14785:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14749:46:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5514,
                  "nodeType": "ExpressionStatement",
                  "src": "14749:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5520,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5515,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14805:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5517,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5516,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14815:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14805:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5518,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "opening_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4754,
                      "src": "14805:33:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5519,
                      "name": "opening_ts",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5431,
                      "src": "14841:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "14805:46:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5521,
                  "nodeType": "ExpressionStatement",
                  "src": "14805:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5522,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14861:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5524,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5523,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14871:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14861:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5525,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4756,
                      "src": "14861:30:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5526,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5429,
                      "src": "14894:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "14861:40:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5528,
                  "nodeType": "ExpressionStatement",
                  "src": "14861:40:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5529,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14911:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5531,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5530,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14921:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14911:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5532,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4762,
                      "src": "14911:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5533,
                      "name": "bounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5440,
                      "src": "14943:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14911:38:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5535,
                  "nodeType": "ExpressionStatement",
                  "src": "14911:38:13"
                }
              ]
            },
            "documentation": null,
            "id": 5537,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5436,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5423,
                    "src": "13615:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5437,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5435,
                  "name": "stateNotCreated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4847,
                  "src": "13599:15:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13599:28:13"
              }
            ],
            "name": "_askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5423,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13476:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5422,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13476:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5425,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13497:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5424,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13497:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5427,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13519:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5426,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13519:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5429,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13539:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5428,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13539:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5431,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13555:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5430,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13555:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5433,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13574:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5432,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13574:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13475:114:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5438,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13641:0:13"
            },
            "scope": 6825,
            "src": "13454:1503:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5575,
              "nodeType": "Block",
              "src": "15370:227:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5548,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5541,
                        "src": "15402:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5547,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5421,
                      "src": "15380:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5549,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15380:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5550,
                  "nodeType": "ExpressionStatement",
                  "src": "15380:29:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5551,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "15419:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5553,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5552,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5539,
                          "src": "15429:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15419:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5554,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4762,
                      "src": "15419:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5560,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5541,
                          "src": "15485:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5555,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "15451:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5557,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5556,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5539,
                              "src": "15461:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15451:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5558,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bounty",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4762,
                          "src": "15451:29:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5559,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6922,
                        "src": "15451:33:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5561,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15451:41:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15419:73:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5563,
                  "nodeType": "ExpressionStatement",
                  "src": "15419:73:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5565,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5539,
                        "src": "15527:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5566,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5541,
                        "src": "15540:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5567,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4798,
                            "src": "15548:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5569,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5568,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5539,
                            "src": "15558:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "15548:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4769_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5570,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "bounty",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4762,
                        "src": "15548:29:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5571,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "15579:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5572,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15579:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5564,
                      "name": "LogFundAnswerBounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4698,
                      "src": "15507:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,uint256,uint256,address)"
                      }
                    },
                    "id": 5573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15507:83:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5574,
                  "nodeType": "EmitStatement",
                  "src": "15502:88:13"
                }
              ]
            },
            "documentation": "@notice Add funds to the bounty for a question\n @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n @param question_id The ID of the question you wish to fund\n @param tokens The number of tokens to fund",
            "id": 5576,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5544,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5539,
                    "src": "15344:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5545,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5543,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4912,
                  "src": "15334:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15334:22:13"
              }
            ],
            "name": "fundAnswerBountyERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5542,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5539,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5576,
                  "src": "15288:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5538,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15288:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5541,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5576,
                  "src": "15309:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5540,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15309:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15287:37:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5546,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15370:0:13"
            },
            "scope": 6825,
            "src": "15257:340:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5620,
              "nodeType": "Block",
              "src": "16402:206:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5599,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5584,
                        "src": "16434:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5598,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5421,
                      "src": "16412:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16412:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5601,
                  "nodeType": "ExpressionStatement",
                  "src": "16412:29:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5603,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5578,
                        "src": "16471:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5604,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5580,
                        "src": "16484:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5605,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "16492:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16492:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5607,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5584,
                        "src": "16504:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 5608,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16512:5:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5602,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5881,
                      "src": "16451:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5609,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16451:67:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5610,
                  "nodeType": "ExpressionStatement",
                  "src": "16451:67:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5612,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5578,
                        "src": "16549:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5613,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5580,
                        "src": "16562:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5614,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4798,
                            "src": "16570:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5616,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5615,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5578,
                            "src": "16580:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16570:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4769_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5617,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timeout",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4756,
                        "src": "16570:30:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 5611,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5910,
                      "src": "16528:20:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 5618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16528:73:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5619,
                  "nodeType": "ExpressionStatement",
                  "src": "16528:73:13"
                }
              ]
            },
            "documentation": "@notice Submit an answer for a question.\n @dev Adds the answer to the history and updates the current \"best\" answer.\n May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param tokens The amount of tokens to submit",
            "id": 5621,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5587,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5578,
                    "src": "16262:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5588,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5586,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4912,
                  "src": "16252:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16252:22:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5590,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5578,
                    "src": "16298:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5591,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5584,
                    "src": "16311:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5592,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5589,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5024,
                  "src": "16283:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16283:35:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5594,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5578,
                    "src": "16362:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5595,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5582,
                    "src": "16375:12:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5596,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5593,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5047,
                  "src": "16327:34:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16327:61:13"
              }
            ],
            "name": "submitAnswerERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5578,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5621,
                  "src": "16168:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5577,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16168:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5580,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5621,
                  "src": "16189:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5579,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16189:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5582,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5621,
                  "src": "16205:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5581,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16205:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5584,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5621,
                  "src": "16227:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5583,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16227:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16167:75:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5597,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16402:0:13"
            },
            "scope": 6825,
            "src": "16141:467:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5659,
              "nodeType": "Block",
              "src": "16889:306:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5629,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4806,
                              "src": "16907:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5631,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5630,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5625,
                              "src": "16919:13:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "16907:26:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5632,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4771,
                          "src": "16907:36:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5633,
                          "name": "COMMITMENT_NON_EXISTENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4649,
                          "src": "16947:23:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16907:63:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
                        "id": 5635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16972:35:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        },
                        "value": "commitment must not already exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        }
                      ],
                      "id": 5628,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "16899:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16899:109:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5637,
                  "nodeType": "ExpressionStatement",
                  "src": "16899:109:13"
                },
                {
                  "assignments": [
                    5639
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5639,
                      "name": "commitment_timeout",
                      "nodeType": "VariableDeclaration",
                      "scope": 5660,
                      "src": "17019:25:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5638,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17019:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5646,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "id": 5645,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5640,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "17047:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5642,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5641,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5623,
                          "src": "17057:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17047:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5643,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4756,
                      "src": "17047:30:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 5644,
                      "name": "COMMITMENT_TIMEOUT_RATIO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4652,
                      "src": "17080:24:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "17047:57:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17019:85:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5657,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5647,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4806,
                          "src": "17114:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5649,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5648,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5625,
                          "src": "17126:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17114:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5650,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "reveal_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4771,
                      "src": "17114:36:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5655,
                          "name": "commitment_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5639,
                          "src": "17169:18:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5652,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7354,
                              "src": "17160:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5651,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "17153:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5653,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17153:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 5654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6949,
                        "src": "17153:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 5656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17153:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "17114:74:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5658,
                  "nodeType": "ExpressionStatement",
                  "src": "17114:74:13"
                }
              ]
            },
            "documentation": null,
            "id": 5660,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_storeCommitment",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5626,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5623,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5660,
                  "src": "16827:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5622,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16827:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5625,
                  "name": "commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5660,
                  "src": "16848:21:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5624,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16848:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16826:44:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5627,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16889:0:13"
            },
            "scope": 6825,
            "src": "16801:394:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5723,
              "nodeType": "Block",
              "src": "18471:361:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5685,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5670,
                        "src": "18504:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5684,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5421,
                      "src": "18482:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5686,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18482:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5687,
                  "nodeType": "ExpressionStatement",
                  "src": "18482:29:13"
                },
                {
                  "assignments": [
                    5689
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5689,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5724,
                      "src": "18522:21:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5688,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "18522:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5698,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5693,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5662,
                            "src": "18573:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5694,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5664,
                            "src": "18586:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5695,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5670,
                            "src": "18599:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5691,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "18556:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5692,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "18556:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5696,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18556:50:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5690,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "18546:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18546:61:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18522:85:13"
                },
                {
                  "assignments": [
                    5700
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5700,
                      "name": "answerer",
                      "nodeType": "VariableDeclaration",
                      "scope": 5724,
                      "src": "18617:16:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5699,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "18617:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5709,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5701,
                            "name": "_answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5668,
                            "src": "18637:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5702,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4638,
                            "src": "18650:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "18637:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 5704,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "18636:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 5707,
                      "name": "_answerer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5668,
                      "src": "18679:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5708,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "18636:52:13",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5705,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7352,
                        "src": "18666:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18666:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18617:71:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5711,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5662,
                        "src": "18716:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5712,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5689,
                        "src": "18729:13:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5710,
                      "name": "_storeCommitment",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5660,
                      "src": "18699:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5713,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18699:44:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5714,
                  "nodeType": "ExpressionStatement",
                  "src": "18699:44:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5716,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5662,
                        "src": "18773:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5717,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5689,
                        "src": "18786:13:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5718,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5700,
                        "src": "18801:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5719,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5670,
                        "src": "18811:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 5720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18819:4:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5715,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5881,
                      "src": "18753:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18753:71:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5722,
                  "nodeType": "ExpressionStatement",
                  "src": "18753:71:13"
                }
              ]
            },
            "documentation": "@notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n The commitment_id is stored in the answer history where the answer would normally go.\n Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n @param question_id The ID of the question\n @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n @param tokens Number of tokens sent\n @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
            "id": 5724,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5673,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5662,
                    "src": "18331:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5674,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5672,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4912,
                  "src": "18321:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18321:22:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5676,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5662,
                    "src": "18367:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5677,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5670,
                    "src": "18380:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5678,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5675,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5024,
                  "src": "18352:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18352:35:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5680,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5662,
                    "src": "18431:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5681,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5666,
                    "src": "18444:12:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5682,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5679,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5047,
                  "src": "18396:34:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18396:61:13"
              }
            ],
            "name": "submitAnswerCommitmentERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5671,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5662,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18213:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5661,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18213:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5664,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18234:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5663,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18234:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5666,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18255:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5665,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18255:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5668,
                  "name": "_answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18277:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5667,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18277:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5670,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18296:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5669,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18296:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18212:99:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5683,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18471:0:13"
            },
            "scope": 6825,
            "src": "18176:656:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5821,
              "nodeType": "Block",
              "src": "19966:746:13",
              "statements": [
                {
                  "assignments": [
                    5739
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5739,
                      "name": "answer_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5822,
                      "src": "19977:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5738,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "19977:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5747,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5743,
                            "name": "answer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5728,
                            "src": "20026:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5744,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5730,
                            "src": "20034:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5741,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "20009:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5742,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20009:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5745,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20009:31:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5740,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "19999:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19999:42:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19977:64:13"
                },
                {
                  "assignments": [
                    5749
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5749,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5822,
                      "src": "20051:21:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5748,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20051:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5758,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5753,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5726,
                            "src": "20102:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5754,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5739,
                            "src": "20115:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5755,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5732,
                            "src": "20128:4:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5751,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "20085:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5752,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20085:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20085:48:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5750,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "20075:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5757,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20075:59:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20051:83:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "20153:39:13",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5760,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4806,
                              "src": "20154:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5762,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5761,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5749,
                              "src": "20166:13:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20154:26:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5763,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_revealed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4773,
                          "src": "20154:38:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
                        "id": 5765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20194:44:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        },
                        "value": "commitment must not have been revealed yet"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        }
                      ],
                      "id": 5759,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "20145:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5766,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20145:94:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5767,
                  "nodeType": "ExpressionStatement",
                  "src": "20145:94:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5776,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5769,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4806,
                              "src": "20257:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5771,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5770,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5749,
                              "src": "20269:13:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20257:26:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5772,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4771,
                          "src": "20257:36:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5774,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7354,
                              "src": "20303:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "20296:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5775,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20296:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "20257:50:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 5777,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20309:38:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        },
                        "value": "reveal deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        }
                      ],
                      "id": 5768,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "20249:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20249:99:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5779,
                  "nodeType": "ExpressionStatement",
                  "src": "20249:99:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5785,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5780,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4806,
                          "src": "20359:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5782,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5781,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5749,
                          "src": "20371:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20359:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5783,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealed_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4775,
                      "src": "20359:42:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5784,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5728,
                      "src": "20404:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "20359:51:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5786,
                  "nodeType": "ExpressionStatement",
                  "src": "20359:51:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5787,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4806,
                          "src": "20420:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5789,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5788,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5749,
                          "src": "20432:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20420:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5790,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_revealed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4773,
                      "src": "20420:38:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 5791,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20461:4:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "20420:45:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5793,
                  "nodeType": "ExpressionStatement",
                  "src": "20420:45:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5794,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5732,
                      "src": "20480:4:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5795,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "20488:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5797,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5796,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5726,
                          "src": "20498:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20488:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5798,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4768,
                      "src": "20488:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20480:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5810,
                  "nodeType": "IfStatement",
                  "src": "20476:139:13",
                  "trueBody": {
                    "id": 5809,
                    "nodeType": "Block",
                    "src": "20517:98:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5801,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5726,
                              "src": "20552:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5802,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5728,
                              "src": "20565:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5803,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4798,
                                  "src": "20573:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                  }
                                },
                                "id": 5805,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5804,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5726,
                                  "src": "20583:11:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20573:22:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$4769_storage",
                                  "typeString": "struct RealitioERC20.Question storage ref"
                                }
                              },
                              "id": 5806,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeout",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4756,
                              "src": "20573:30:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 5800,
                            "name": "_updateCurrentAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5910,
                            "src": "20531:20:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                              "typeString": "function (bytes32,bytes32,uint32)"
                            }
                          },
                          "id": 5807,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20531:73:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5808,
                        "nodeType": "ExpressionStatement",
                        "src": "20531:73:13"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5812,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5726,
                        "src": "20646:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5813,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "20659:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5814,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "20659:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5815,
                        "name": "answer_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5739,
                        "src": "20671:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5816,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5728,
                        "src": "20684:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5817,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5730,
                        "src": "20692:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5818,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5732,
                        "src": "20699:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5811,
                      "name": "LogAnswerReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4728,
                      "src": "20630:15:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32,bytes32,uint256,uint256)"
                      }
                    },
                    "id": 5819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20630:74:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5820,
                  "nodeType": "EmitStatement",
                  "src": "20625:79:13"
                }
              ]
            },
            "documentation": "@notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n Updates the current answer unless someone has since supplied a new answer with a higher bond\n msg.sender is intentionally not restricted to the user who originally sent the commitment; \n For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n @param question_id The ID of the question\n @param answer The answer, encoded as bytes32\n @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n @param bond The bond that you paid in your submitAnswerCommitment() transaction",
            "id": 5822,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5735,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5726,
                    "src": "19940:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5736,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5734,
                  "name": "stateOpenOrPendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4982,
                  "src": "19910:29:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19910:42:13"
              }
            ],
            "name": "submitAnswerReveal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5726,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5822,
                  "src": "19835:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5725,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19835:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5728,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5822,
                  "src": "19856:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5727,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19856:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5730,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5822,
                  "src": "19872:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19872:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5732,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 5822,
                  "src": "19887:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19887:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19834:66:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5737,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19966:0:13"
            },
            "scope": 6825,
            "src": "19807:905:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5880,
              "nodeType": "Block",
              "src": "20872:524:13",
              "statements": [
                {
                  "assignments": [
                    5836
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5836,
                      "name": "new_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5881,
                      "src": "20882:24:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5835,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20882:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5850,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 5840,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4798,
                                "src": "20936:9:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                }
                              },
                              "id": 5842,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 5841,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5824,
                                "src": "20946:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "20936:22:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$4769_storage",
                                "typeString": "struct RealitioERC20.Question storage ref"
                              }
                            },
                            "id": 5843,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "history_hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4766,
                            "src": "20936:35:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5844,
                            "name": "answer_or_commitment_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5826,
                            "src": "20973:23:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5845,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5830,
                            "src": "20998:4:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5846,
                            "name": "answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5828,
                            "src": "21004:8:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5847,
                            "name": "is_commitment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5832,
                            "src": "21014:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5838,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "20919:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5839,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20919:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5848,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20919:109:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5837,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "20909:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5849,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20909:120:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20882:147:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5851,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5830,
                      "src": "21137:4:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5852,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "21144:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "21137:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5862,
                  "nodeType": "IfStatement",
                  "src": "21133:73:13",
                  "trueBody": {
                    "id": 5861,
                    "nodeType": "Block",
                    "src": "21147:59:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5859,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 5854,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4798,
                                "src": "21161:9:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                }
                              },
                              "id": 5856,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 5855,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5824,
                                "src": "21171:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "21161:22:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$4769_storage",
                                "typeString": "struct RealitioERC20.Question storage ref"
                              }
                            },
                            "id": 5857,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4768,
                            "src": "21161:27:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 5858,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5830,
                            "src": "21191:4:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21161:34:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5860,
                        "nodeType": "ExpressionStatement",
                        "src": "21161:34:13"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5868,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5863,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "21215:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5865,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5864,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5824,
                          "src": "21225:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21215:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5866,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4766,
                      "src": "21215:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5867,
                      "name": "new_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5836,
                      "src": "21253:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21215:54:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5869,
                  "nodeType": "ExpressionStatement",
                  "src": "21215:54:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5871,
                        "name": "answer_or_commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5826,
                        "src": "21298:23:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5872,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5824,
                        "src": "21323:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5873,
                        "name": "new_history_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5836,
                        "src": "21336:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5874,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5828,
                        "src": "21354:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5875,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5830,
                        "src": "21364:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5876,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7354,
                        "src": "21370:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5877,
                        "name": "is_commitment",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5832,
                        "src": "21375:13:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5870,
                      "name": "LogNewAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4714,
                      "src": "21285:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bytes32,address,uint256,uint256,bool)"
                      }
                    },
                    "id": 5878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21285:104:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5879,
                  "nodeType": "EmitStatement",
                  "src": "21280:109:13"
                }
              ]
            },
            "documentation": null,
            "id": 5881,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_addAnswerToHistory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5833,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5824,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20747:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5823,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20747:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5826,
                  "name": "answer_or_commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20768:31:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5825,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20768:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5828,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20801:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5827,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "20801:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5830,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20819:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5829,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20819:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5832,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20833:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5831,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20833:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20746:106:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5834,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20872:0:13"
            },
            "scope": 6825,
            "src": "20718:678:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5909,
              "nodeType": "Block",
              "src": "21503:136:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5895,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5890,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "21513:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5892,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5891,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5883,
                          "src": "21523:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21513:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5893,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "best_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4764,
                      "src": "21513:34:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5894,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5885,
                      "src": "21550:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21513:43:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5896,
                  "nodeType": "ExpressionStatement",
                  "src": "21513:43:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5897,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "21566:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5899,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5898,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5883,
                          "src": "21576:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21566:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5900,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalize_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4758,
                      "src": "21566:34:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5905,
                          "name": "timeout_secs",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5887,
                          "src": "21619:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5902,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7354,
                              "src": "21610:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5901,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "21603:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21603:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 5904,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6949,
                        "src": "21603:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 5906,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21603:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "21566:66:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5908,
                  "nodeType": "ExpressionStatement",
                  "src": "21566:66:13"
                }
              ]
            },
            "documentation": null,
            "id": 5910,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_updateCurrentAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5888,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5883,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5910,
                  "src": "21432:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5882,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21432:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5885,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5910,
                  "src": "21453:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5884,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21453:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5887,
                  "name": "timeout_secs",
                  "nodeType": "VariableDeclaration",
                  "scope": 5910,
                  "src": "21469:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5886,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21469:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21431:58:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5889,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21503:0:13"
            },
            "scope": 6825,
            "src": "21402:237:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5951,
              "nodeType": "Block",
              "src": "22369:257:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5935,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5930,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "22387:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5932,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5931,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5912,
                              "src": "22397:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22387:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5933,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4768,
                          "src": "22387:27:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "22417:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "22387:31:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
                        "id": 5936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22420:68:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        },
                        "value": "Question must already have an answer when arbitration is requested"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        }
                      ],
                      "id": 5929,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "22379:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22379:110:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5938,
                  "nodeType": "ExpressionStatement",
                  "src": "22379:110:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5939,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "22499:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5941,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5940,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5912,
                          "src": "22509:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22499:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5942,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4760,
                      "src": "22499:45:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 5943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22547:4:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "22499:52:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5945,
                  "nodeType": "ExpressionStatement",
                  "src": "22499:52:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5947,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5912,
                        "src": "22596:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5948,
                        "name": "requester",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5914,
                        "src": "22609:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5946,
                      "name": "LogNotifyOfArbitrationRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4734,
                      "src": "22566:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 5949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22566:53:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5950,
                  "nodeType": "EmitStatement",
                  "src": "22561:58:13"
                }
              ]
            },
            "documentation": "@notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n @param question_id The ID of the question\n @param requester The account that requested arbitration\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 5952,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5919,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5912,
                    "src": "22242:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5920,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5918,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4827,
                  "src": "22227:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22227:27:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5922,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5912,
                    "src": "22273:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5923,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5921,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4912,
                  "src": "22263:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22263:22:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5925,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5912,
                    "src": "22329:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5926,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5916,
                    "src": "22342:12:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5927,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5924,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5047,
                  "src": "22294:34:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22294:61:13"
              }
            ],
            "name": "notifyOfArbitrationRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5917,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5912,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5952,
                  "src": "22156:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5911,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22156:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5914,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 5952,
                  "src": "22177:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5913,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22177:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5916,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5952,
                  "src": "22196:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5915,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22196:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22155:62:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5928,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22369:0:13"
            },
            "scope": 6825,
            "src": "22120:506:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6000,
              "nodeType": "Block",
              "src": "23406:316:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5968,
                          "name": "answerer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5958,
                          "src": "23425:8:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5969,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4638,
                          "src": "23437:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "23425:24:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616e737765726572206d7573742062652070726f7669646564",
                        "id": 5971,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23451:27:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        },
                        "value": "answerer must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        }
                      ],
                      "id": 5967,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "23417:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23417:62:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5973,
                  "nodeType": "ExpressionStatement",
                  "src": "23417:62:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5975,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5954,
                        "src": "23506:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5976,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5956,
                        "src": "23519:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5974,
                      "name": "LogFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4740,
                      "src": "23494:11:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23494:32:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5978,
                  "nodeType": "EmitStatement",
                  "src": "23489:37:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5979,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "23537:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5981,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5980,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5954,
                          "src": "23547:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "23537:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5982,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4760,
                      "src": "23537:45:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 5983,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "23585:5:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "23537:53:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5985,
                  "nodeType": "ExpressionStatement",
                  "src": "23537:53:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5987,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5954,
                        "src": "23620:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5988,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5956,
                        "src": "23633:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5989,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5958,
                        "src": "23641:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23651:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 5991,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23654:5:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5986,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5881,
                      "src": "23600:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23600:60:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5993,
                  "nodeType": "ExpressionStatement",
                  "src": "23600:60:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5995,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5954,
                        "src": "23691:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5996,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5956,
                        "src": "23704:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5997,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23712:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 5994,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5910,
                      "src": "23670:20:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 5998,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23670:44:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5999,
                  "nodeType": "ExpressionStatement",
                  "src": "23670:44:13"
                }
              ]
            },
            "documentation": "@notice Submit the answer for a question, for use by the arbitrator.\n @dev Doesn't require (or allow) a bond.\n If the current final answer is correct, the account should be whoever submitted it.\n If the current final answer is wrong, the account should be whoever paid for arbitration.\n However, the answerer stipulations are not enforced by the contract.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param answerer The account credited with this answer for the purpose of bond claims",
            "id": 6001,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5961,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5954,
                    "src": "23335:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5962,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5960,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4827,
                  "src": "23320:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "23320:27:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5964,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5954,
                    "src": "23380:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5965,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5963,
                  "name": "statePendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4926,
                  "src": "23356:23:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "23356:36:13"
              }
            ],
            "name": "submitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5959,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5954,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6001,
                  "src": "23256:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5953,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23256:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5956,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6001,
                  "src": "23277:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5955,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23277:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5958,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6001,
                  "src": "23293:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5957,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "23293:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23255:55:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5966,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "23406:0:13"
            },
            "scope": 6825,
            "src": "23222:500:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6034,
              "nodeType": "Block",
              "src": "23974:201:13",
              "statements": [
                {
                  "assignments": [
                    6009
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6009,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 6035,
                      "src": "23984:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 6008,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "23984:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6014,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6010,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "24005:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6012,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6011,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6003,
                        "src": "24015:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24005:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6013,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4758,
                    "src": "24005:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23984:55:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6031,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 6024,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6019,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "24058:46:13",
                            "subExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6015,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4798,
                                  "src": "24059:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                  }
                                },
                                "id": 6017,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6016,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6003,
                                  "src": "24069:11:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "24059:22:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$4769_storage",
                                  "typeString": "struct RealitioERC20.Question storage ref"
                                }
                              },
                              "id": 6018,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "is_pending_arbitration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4760,
                              "src": "24059:45:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 6022,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 6020,
                                  "name": "finalize_ts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6009,
                                  "src": "24109:11:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 6021,
                                  "name": "UNANSWERED",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4646,
                                  "src": "24123:10:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "24109:24:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 6023,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "24108:26:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "24058:76:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 6029,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 6025,
                                "name": "finalize_ts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6009,
                                "src": "24139:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6027,
                                    "name": "now",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7354,
                                    "src": "24161:3:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6026,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "24154:6:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint32_$",
                                    "typeString": "type(uint32)"
                                  },
                                  "typeName": "uint32"
                                },
                                "id": 6028,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "24154:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "24139:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 6030,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "24138:28:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "24058:108:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 6032,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "24056:112:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6007,
                  "id": 6033,
                  "nodeType": "Return",
                  "src": "24049:119:13"
                }
              ]
            },
            "documentation": "@notice Report whether the answer to the specified question is finalized\n @param question_id The ID of the question\n @return Return true if finalized",
            "id": 6035,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isFinalized",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6004,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6003,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6035,
                  "src": "23921:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6002,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23921:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23920:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6007,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6006,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6035,
                  "src": "23968:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6005,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23968:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23967:6:13"
            },
            "scope": 6825,
            "src": "23900:275:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6050,
              "nodeType": "Block",
              "src": "24508:58:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6045,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "24525:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6047,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6046,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6037,
                        "src": "24535:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24525:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6048,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "24525:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6044,
                  "id": 6049,
                  "nodeType": "Return",
                  "src": "24518:41:13"
                }
              ]
            },
            "documentation": "@notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 6051,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6040,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6037,
                    "src": "24459:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6041,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6039,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4995,
                  "src": "24444:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24444:27:13"
              }
            ],
            "name": "getFinalAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6037,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6051,
                  "src": "24414:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6036,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24414:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24413:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6043,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6051,
                  "src": "24499:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6042,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24499:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24498:9:13"
            },
            "scope": 6825,
            "src": "24390:176:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6066,
              "nodeType": "Block",
              "src": "24881:58:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6061,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "24898:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6063,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6062,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6053,
                        "src": "24908:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24898:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6064,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "24898:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6060,
                  "id": 6065,
                  "nodeType": "Return",
                  "src": "24891:41:13"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 6067,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6056,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6053,
                    "src": "24832:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6057,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6055,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4995,
                  "src": "24817:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24817:27:13"
              }
            ],
            "name": "resultFor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6054,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6053,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6067,
                  "src": "24787:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6052,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24787:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24786:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6059,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6067,
                  "src": "24872:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6058,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24872:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24871:9:13"
            },
            "scope": 6825,
            "src": "24768:171:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6130,
              "nodeType": "Block",
              "src": "25917:427:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 6091,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6086,
                          "name": "content_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6071,
                          "src": "25935:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6087,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "25951:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6089,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6088,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6069,
                              "src": "25961:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "25951:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6090,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "content_hash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4750,
                          "src": "25951:35:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "25935:51:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74656e742068617368206d757374206d61746368",
                        "id": 6092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "25988:25:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        },
                        "value": "content hash must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        }
                      ],
                      "id": 6085,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "25927:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25927:87:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6094,
                  "nodeType": "ExpressionStatement",
                  "src": "25927:87:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6096,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6073,
                          "src": "26032:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6097,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "26046:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6099,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6098,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6069,
                              "src": "26056:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26046:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6100,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4752,
                          "src": "26046:33:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "26032:47:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d757374206d61746368",
                        "id": 6102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26081:23:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        },
                        "value": "arbitrator must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        }
                      ],
                      "id": 6095,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "26024:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26024:81:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6104,
                  "nodeType": "ExpressionStatement",
                  "src": "26024:81:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 6111,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6106,
                          "name": "min_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6075,
                          "src": "26123:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6107,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "26138:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6109,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6108,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6069,
                              "src": "26148:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26138:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6110,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4756,
                          "src": "26138:30:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "26123:45:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
                        "id": 6112,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26170:29:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        },
                        "value": "timeout must be long enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        }
                      ],
                      "id": 6105,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "26115:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6113,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26115:85:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6114,
                  "nodeType": "ExpressionStatement",
                  "src": "26115:85:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6116,
                          "name": "min_bond",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6077,
                          "src": "26218:8:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6117,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "26230:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6119,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6118,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6069,
                              "src": "26240:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26230:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6120,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4768,
                          "src": "26230:27:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "26218:39:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
                        "id": 6122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26259:26:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        },
                        "value": "bond must be high enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        }
                      ],
                      "id": 6115,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "26210:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26210:76:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6124,
                  "nodeType": "ExpressionStatement",
                  "src": "26210:76:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6125,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "26303:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6127,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6126,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6069,
                        "src": "26313:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "26303:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6128,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "26303:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6084,
                  "id": 6129,
                  "nodeType": "Return",
                  "src": "26296:41:13"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, provided it matches the specified criteria.\n @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n @param question_id The ID of the question\n @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n @param min_timeout The timeout set in the initial question settings must be this high or higher\n @param min_bond The bond sent with the final answer must be this high or higher\n @return The answer formatted as a bytes32",
            "id": 6131,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6080,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6069,
                    "src": "25868:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6081,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6079,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4995,
                  "src": "25853:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "25853:27:13"
              }
            ],
            "name": "getFinalAnswerIfMatches",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6078,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6069,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25729:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6068,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25729:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6071,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25759:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6070,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25759:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6073,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25781:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6072,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "25781:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6075,
                  "name": "min_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25801:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6074,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25801:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6077,
                  "name": "min_bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25821:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6076,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "25821:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25719:124:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6084,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6083,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25908:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6082,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25908:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25907:9:13"
            },
            "scope": 6825,
            "src": "25687:657:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6331,
              "nodeType": "Block",
              "src": "27856:2585:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6152,
                            "name": "history_hashes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6136,
                            "src": "27875:14:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 6153,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "27875:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 6154,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "27899:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "27875:25:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
                        "id": 6156,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "27902:50:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        },
                        "value": "at least one history hash entry must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        }
                      ],
                      "id": 6151,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "27867:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6157,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27867:86:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6158,
                  "nodeType": "ExpressionStatement",
                  "src": "27867:86:13"
                },
                {
                  "assignments": [
                    6160
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6160,
                      "name": "payee",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28044:13:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6159,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "28044:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6165,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6161,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4802,
                        "src": "28060:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6163,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6162,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28076:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28060:28:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4783_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6164,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "payee",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4778,
                    "src": "28060:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28044:50:13"
                },
                {
                  "assignments": [
                    6167
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6167,
                      "name": "last_bond",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28105:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6166,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28105:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6172,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6168,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4802,
                        "src": "28125:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6170,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6169,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28141:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28125:28:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4783_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6171,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "last_bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4780,
                    "src": "28125:38:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28105:58:13"
                },
                {
                  "assignments": [
                    6174
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6174,
                      "name": "queued_funds",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28174:20:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6173,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28174:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6179,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6175,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4802,
                        "src": "28197:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6177,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6176,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28213:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28197:28:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4783_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6178,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "queued_funds",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4782,
                    "src": "28197:41:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28174:64:13"
                },
                {
                  "assignments": [
                    6181
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6181,
                      "name": "last_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28459:25:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6180,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "28459:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6186,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6182,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "28487:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6184,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6183,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28497:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28487:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6185,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4766,
                    "src": "28487:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28459:63:13"
                },
                {
                  "assignments": [
                    6188
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6188,
                      "name": "best_answer",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28533:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6187,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "28533:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6193,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6189,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "28555:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6191,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6190,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28565:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28555:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6192,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "28555:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28533:56:13"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6195,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28600:9:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6194,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28600:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6196,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28600:9:13"
                },
                {
                  "body": {
                    "id": 6266,
                    "nodeType": "Block",
                    "src": "28663:702:13",
                    "statements": [
                      {
                        "assignments": [
                          6209
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6209,
                            "name": "is_commitment",
                            "nodeType": "VariableDeclaration",
                            "scope": 6332,
                            "src": "28797:18:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 6208,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "28797:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6225,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6211,
                              "name": "last_history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6181,
                              "src": "28846:17:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6212,
                                "name": "history_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6136,
                                "src": "28865:14:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 6214,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6213,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6195,
                                "src": "28880:1:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28865:17:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6215,
                                "name": "answers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6145,
                                "src": "28884:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 6217,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6216,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6195,
                                "src": "28892:1:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28884:10:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6218,
                                "name": "bonds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6142,
                                "src": "28896:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 6220,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6219,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6195,
                                "src": "28902:1:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28896:8:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6221,
                                "name": "addrs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6139,
                                "src": "28906:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 6223,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6222,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6195,
                                "src": "28912:1:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28906:8:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 6210,
                            "name": "_verifyHistoryInputOrRevert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6411,
                            "src": "28818:27:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (bytes32,bytes32,bytes32,uint256,address) pure returns (bool)"
                            }
                          },
                          "id": 6224,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "28818:97:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28797:118:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6226,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6174,
                            "src": "28942:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6229,
                                "name": "last_bond",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6167,
                                "src": "28974:9:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 6227,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6174,
                                "src": "28957:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6228,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6922,
                              "src": "28957:16:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 6230,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "28957:27:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "28942:42:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6232,
                        "nodeType": "ExpressionStatement",
                        "src": "28942:42:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6252,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 6233,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6174,
                                "src": "29000:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6234,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6160,
                                "src": "29014:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "id": 6235,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "28999:21:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6237,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "29060:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6238,
                                "name": "best_answer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6188,
                                "src": "29073:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6239,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6174,
                                "src": "29086:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6240,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6160,
                                "src": "29100:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6241,
                                  "name": "addrs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6139,
                                  "src": "29124:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 6243,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6242,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6195,
                                  "src": "29130:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29124:8:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6244,
                                  "name": "bonds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6142,
                                  "src": "29134:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                    "typeString": "uint256[] memory"
                                  }
                                },
                                "id": 6246,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6245,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6195,
                                  "src": "29140:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29134:8:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6247,
                                  "name": "answers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6145,
                                  "src": "29144:7:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                    "typeString": "bytes32[] memory"
                                  }
                                },
                                "id": 6249,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6248,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6195,
                                  "src": "29152:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29144:10:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6250,
                                "name": "is_commitment",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6209,
                                "src": "29156:13:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 6236,
                              "name": "_processHistoryItem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6538,
                              "src": "29023:19:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$_t_address_$",
                                "typeString": "function (bytes32,bytes32,uint256,address,address,uint256,bytes32,bool) returns (uint256,address)"
                              }
                            },
                            "id": 6251,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "29023:147:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "src": "28999:171:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6253,
                        "nodeType": "ExpressionStatement",
                        "src": "28999:171:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6258,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6254,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6167,
                            "src": "29282:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6255,
                              "name": "bonds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6142,
                              "src": "29294:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 6257,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6256,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6195,
                              "src": "29300:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "29294:8:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "29282:20:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6259,
                        "nodeType": "ExpressionStatement",
                        "src": "29282:20:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6264,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6260,
                            "name": "last_history_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6181,
                            "src": "29316:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6261,
                              "name": "history_hashes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6136,
                              "src": "29336:14:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            "id": 6263,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6262,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6195,
                              "src": "29351:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "29336:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "29316:37:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 6265,
                        "nodeType": "ExpressionStatement",
                        "src": "29316:37:13"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6201,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6195,
                      "src": "28631:1:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6202,
                        "name": "history_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6136,
                        "src": "28635:14:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 6203,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "28635:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "28631:25:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6267,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6199,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 6197,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6195,
                        "src": "28624:1:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6198,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "28628:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "28624:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6200,
                    "nodeType": "ExpressionStatement",
                    "src": "28624:5:13"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6206,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "28658:3:13",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6205,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6195,
                        "src": "28658:1:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6207,
                    "nodeType": "ExpressionStatement",
                    "src": "28658:3:13"
                  },
                  "nodeType": "ForStatement",
                  "src": "28619:746:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6268,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6181,
                      "src": "29380:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6269,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4643,
                      "src": "29401:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "29380:30:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6322,
                    "nodeType": "Block",
                    "src": "30155:213:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6309,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6133,
                              "src": "30260:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6310,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6160,
                              "src": "30273:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6313,
                                  "name": "last_bond",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6167,
                                  "src": "30297:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6311,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6174,
                                  "src": "30280:12:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6312,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6922,
                                "src": "30280:16:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 6314,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "30280:27:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6308,
                            "name": "_payPayee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6359,
                            "src": "30250:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,uint256)"
                            }
                          },
                          "id": 6315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30250:58:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6316,
                        "nodeType": "ExpressionStatement",
                        "src": "30250:58:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "30322:35:13",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6317,
                              "name": "question_claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4802,
                              "src": "30329:15:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                              }
                            },
                            "id": 6319,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6318,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6133,
                              "src": "30345:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "30329:28:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$4783_storage",
                              "typeString": "struct RealitioERC20.Claim storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6321,
                        "nodeType": "ExpressionStatement",
                        "src": "30322:35:13"
                      }
                    ]
                  },
                  "id": 6323,
                  "nodeType": "IfStatement",
                  "src": "29376:992:13",
                  "trueBody": {
                    "id": 6307,
                    "nodeType": "Block",
                    "src": "29412:737:13",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6273,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6271,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6160,
                            "src": "29815:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6272,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4638,
                            "src": "29824:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "29815:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 6285,
                        "nodeType": "IfStatement",
                        "src": "29811:137:13",
                        "trueBody": {
                          "id": 6284,
                          "nodeType": "Block",
                          "src": "29838:110:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6275,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6133,
                                    "src": "29866:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6276,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6160,
                                    "src": "29879:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6277,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6174,
                                    "src": "29886:12:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6274,
                                  "name": "_payPayee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6359,
                                  "src": "29856:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256)"
                                  }
                                },
                                "id": 6278,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29856:43:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6279,
                              "nodeType": "ExpressionStatement",
                              "src": "29856:43:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6282,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6280,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6174,
                                  "src": "29917:12:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 6281,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "29932:1:13",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "29917:16:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6283,
                              "nodeType": "ExpressionStatement",
                              "src": "29917:16:13"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6291,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6286,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4802,
                                "src": "29962:15:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6288,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6287,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "29978:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "29962:28:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4783_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6289,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "payee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4778,
                            "src": "29962:34:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6290,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6160,
                            "src": "29999:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "29962:42:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 6292,
                        "nodeType": "ExpressionStatement",
                        "src": "29962:42:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6293,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4802,
                                "src": "30018:15:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6295,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6294,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "30034:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "30018:28:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4783_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6296,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "last_bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4780,
                            "src": "30018:38:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6297,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6167,
                            "src": "30059:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "30018:50:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6299,
                        "nodeType": "ExpressionStatement",
                        "src": "30018:50:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6305,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6300,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4802,
                                "src": "30082:15:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6302,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6301,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "30098:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "30082:28:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4783_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6303,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "queued_funds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4782,
                            "src": "30082:41:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6304,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6174,
                            "src": "30126:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "30082:56:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6306,
                        "nodeType": "ExpressionStatement",
                        "src": "30082:56:13"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6329,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6324,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "30378:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6326,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6325,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6133,
                          "src": "30388:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "30378:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6327,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4766,
                      "src": "30378:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6328,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6181,
                      "src": "30416:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30378:55:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 6330,
                  "nodeType": "ExpressionStatement",
                  "src": "30378:55:13"
                }
              ]
            },
            "documentation": "@notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n Caller must provide the answer history, in reverse order\n @dev Works up the chain and assign bonds to the person who gave the right answer\n If someone gave the winning answer earlier, they must get paid from the higher bond\n That means we can't pay out the bond added at n until we have looked at n-1\n The first answer is authenticated by checking against the stored history_hash.\n One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n Once we get to a null hash we'll know we're done and there are no more answers.\n Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n @param question_id The ID of the question\n @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n @param addrs Last-to-first, the address of each answerer or commitment sender\n @param bonds Last-to-first, the bond supplied with each answer or commitment\n @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal",
            "id": 6332,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6148,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6133,
                    "src": "27832:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6149,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6147,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4995,
                  "src": "27817:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "27817:27:13"
              }
            ],
            "name": "claimWinnings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6133,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27694:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6132,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27694:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6136,
                  "name": "history_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27724:24:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6134,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "27724:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6135,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27724:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6139,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27750:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6137,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "27750:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6138,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27750:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6142,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27767:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6140,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "27767:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6141,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27767:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6145,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27784:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6143,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "27784:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6144,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27784:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27684:123:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6150,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27856:0:13"
            },
            "scope": 6825,
            "src": "27662:2779:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6358,
              "nodeType": "Block",
              "src": "30531:113:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6341,
                        "name": "balanceOf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 393,
                        "src": "30541:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 6343,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6342,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6336,
                        "src": "30551:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "30541:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6348,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6338,
                          "src": "30581:5:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6344,
                            "name": "balanceOf",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 393,
                            "src": "30560:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 6346,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6345,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6336,
                            "src": "30570:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "30560:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6347,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6922,
                        "src": "30560:20:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 6349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30560:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "30541:46:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6351,
                  "nodeType": "ExpressionStatement",
                  "src": "30541:46:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6353,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6334,
                        "src": "30611:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6354,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6336,
                        "src": "30624:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6355,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6338,
                        "src": "30631:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6352,
                      "name": "LogClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4748,
                      "src": "30602:8:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 6356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30602:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6357,
                  "nodeType": "EmitStatement",
                  "src": "30597:40:13"
                }
              ]
            },
            "documentation": null,
            "id": 6359,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_payPayee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6339,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6334,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6359,
                  "src": "30466:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6333,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30466:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6336,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 6359,
                  "src": "30487:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6335,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30487:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6338,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 6359,
                  "src": "30502:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6337,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "30502:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30465:51:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6340,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30531:0:13"
            },
            "scope": 6825,
            "src": "30447:197:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6410,
              "nodeType": "Block",
              "src": "30835:364:13",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6374,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6361,
                      "src": "30849:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6378,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6363,
                              "src": "30897:12:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6379,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6365,
                              "src": "30911:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6380,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6367,
                              "src": "30919:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6381,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6369,
                              "src": "30925:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 6382,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "30931:4:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6376,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7339,
                              "src": "30880:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 6377,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "30880:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 6383,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30880:56:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 6375,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7346,
                        "src": "30870:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 6384,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30870:67:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30849:88:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6389,
                  "nodeType": "IfStatement",
                  "src": "30845:131:13",
                  "trueBody": {
                    "id": 6388,
                    "nodeType": "Block",
                    "src": "30940:36:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 6386,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "30961:4:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 6373,
                        "id": 6387,
                        "nodeType": "Return",
                        "src": "30954:11:13"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6401,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6390,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6361,
                      "src": "30989:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6394,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6363,
                              "src": "31037:12:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6395,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6365,
                              "src": "31051:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6396,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6367,
                              "src": "31059:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6397,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6369,
                              "src": "31065:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 6398,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "31071:5:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6392,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7339,
                              "src": "31020:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 6393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "31020:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 6399,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31020:57:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 6391,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7346,
                        "src": "31010:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 6400,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "31010:68:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30989:89:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6405,
                  "nodeType": "IfStatement",
                  "src": "30985:133:13",
                  "trueBody": {
                    "id": 6404,
                    "nodeType": "Block",
                    "src": "31081:37:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 6402,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "31102:5:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 6373,
                        "id": 6403,
                        "nodeType": "Return",
                        "src": "31095:12:13"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
                        "id": 6407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31135:56:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        },
                        "value": "History input provided did not match the expected hash"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        }
                      ],
                      "id": 6406,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7357,
                        7358
                      ],
                      "referencedDeclaration": 7358,
                      "src": "31128:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 6408,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31128:64:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6409,
                  "nodeType": "ExpressionStatement",
                  "src": "31128:64:13"
                }
              ]
            },
            "documentation": null,
            "id": 6411,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_verifyHistoryInputOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6370,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6361,
                  "name": "last_history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30696:25:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6360,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30696:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6363,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30731:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6362,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30731:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6365,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30753:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6364,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30753:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6367,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30769:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6366,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "30769:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6369,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30783:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6368,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30783:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30686:115:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6372,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30829:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6371,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "30829:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30828:6:13"
            },
            "scope": 6825,
            "src": "30650:549:13",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6537,
              "nodeType": "Block",
              "src": "31449:2168:13",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 6434,
                    "name": "is_commitment",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6427,
                    "src": "31648:13:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6469,
                  "nodeType": "IfStatement",
                  "src": "31644:482:13",
                  "trueBody": {
                    "id": 6468,
                    "nodeType": "Block",
                    "src": "31663:463:13",
                    "statements": [
                      {
                        "assignments": [
                          6436
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6436,
                            "name": "commitment_id",
                            "nodeType": "VariableDeclaration",
                            "scope": 6538,
                            "src": "31677:21:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 6435,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "31677:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6438,
                        "initialValue": {
                          "argumentTypes": null,
                          "id": 6437,
                          "name": "answer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6425,
                          "src": "31701:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31677:30:13"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 6443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "31822:39:13",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6439,
                                "name": "commitments",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4806,
                                "src": "31823:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                }
                              },
                              "id": 6441,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6440,
                                "name": "commitment_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6436,
                                "src": "31835:13:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31823:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                                "typeString": "struct RealitioERC20.Commitment storage ref"
                              }
                            },
                            "id": 6442,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "is_revealed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4773,
                            "src": "31823:38:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6466,
                          "nodeType": "Block",
                          "src": "31981:135:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6459,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6454,
                                  "name": "answer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6425,
                                  "src": "31999:6:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 6455,
                                      "name": "commitments",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4806,
                                      "src": "32008:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                      }
                                    },
                                    "id": 6457,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 6456,
                                      "name": "commitment_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6436,
                                      "src": "32020:13:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "32008:26:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                                      "typeString": "struct RealitioERC20.Commitment storage ref"
                                    }
                                  },
                                  "id": 6458,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealed_answer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4775,
                                  "src": "32008:42:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "31999:51:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6460,
                              "nodeType": "ExpressionStatement",
                              "src": "31999:51:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6464,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "32068:33:13",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6461,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4806,
                                    "src": "32075:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                    }
                                  },
                                  "id": 6463,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6462,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6436,
                                    "src": "32087:13:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "32075:26:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                                    "typeString": "struct RealitioERC20.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6465,
                              "nodeType": "ExpressionStatement",
                              "src": "32068:33:13"
                            }
                          ]
                        },
                        "id": 6467,
                        "nodeType": "IfStatement",
                        "src": "31818:298:13",
                        "trueBody": {
                          "id": 6453,
                          "nodeType": "Block",
                          "src": "31863:112:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6447,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "31881:33:13",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6444,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4806,
                                    "src": "31888:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                    }
                                  },
                                  "id": 6446,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6445,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6436,
                                    "src": "31900:13:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31888:26:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                                    "typeString": "struct RealitioERC20.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6448,
                              "nodeType": "ExpressionStatement",
                              "src": "31881:33:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6449,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6417,
                                    "src": "31940:12:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6450,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6419,
                                    "src": "31954:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "id": 6451,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "31939:21:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                                  "typeString": "tuple(uint256,address)"
                                }
                              },
                              "functionReturnParameters": 6433,
                              "id": 6452,
                              "nodeType": "Return",
                              "src": "31932:28:13"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6470,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6425,
                      "src": "32140:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6471,
                      "name": "best_answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6415,
                      "src": "32150:11:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "32140:21:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6532,
                  "nodeType": "IfStatement",
                  "src": "32136:1435:13",
                  "trueBody": {
                    "id": 6531,
                    "nodeType": "Block",
                    "src": "32163:1408:13",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6473,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6419,
                            "src": "32182:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6474,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4638,
                            "src": "32191:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "32182:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 6500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6498,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6421,
                              "src": "32521:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 6499,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6419,
                              "src": "32529:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "32521:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 6529,
                          "nodeType": "IfStatement",
                          "src": "32517:1043:13",
                          "trueBody": {
                            "id": 6528,
                            "nodeType": "Block",
                            "src": "32536:1024:13",
                            "statements": [
                              {
                                "assignments": [
                                  6502
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 6502,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6538,
                                    "src": "33155:27:13",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 6501,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "33155:7:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 6510,
                                "initialValue": {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 6505,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 6503,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6417,
                                          "src": "33186:12:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 6504,
                                          "name": "bond",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6423,
                                          "src": "33202:4:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "33186:20:13",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 6506,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "33185:22:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "id": 6508,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6417,
                                    "src": "33217:12:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 6509,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "33185:44:13",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "id": 6507,
                                    "name": "bond",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6423,
                                    "src": "33210:4:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "33155:74:13"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6512,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6413,
                                      "src": "33322:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 6513,
                                      "name": "payee",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6419,
                                      "src": "33335:5:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6516,
                                          "name": "answer_takeover_fee",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6502,
                                          "src": "33359:19:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 6514,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6417,
                                          "src": "33342:12:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 6515,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sub",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6898,
                                        "src": "33342:16:13",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 6517,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "33342:37:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 6511,
                                    "name": "_payPayee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6359,
                                    "src": "33312:9:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256)"
                                    }
                                  },
                                  "id": 6518,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "33312:68:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 6519,
                                "nodeType": "ExpressionStatement",
                                "src": "33312:68:13"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6522,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 6520,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6419,
                                    "src": "33480:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 6521,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6421,
                                    "src": "33488:4:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "src": "33480:12:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 6523,
                                "nodeType": "ExpressionStatement",
                                "src": "33480:12:13"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6526,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 6524,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6417,
                                    "src": "33510:12:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 6525,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6502,
                                    "src": "33525:19:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "33510:34:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6527,
                                "nodeType": "ExpressionStatement",
                                "src": "33510:34:13"
                              }
                            ]
                          }
                        },
                        "id": 6530,
                        "nodeType": "IfStatement",
                        "src": "32178:1382:13",
                        "trueBody": {
                          "id": 6497,
                          "nodeType": "Block",
                          "src": "32205:306:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6478,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6476,
                                  "name": "payee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6419,
                                  "src": "32352:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 6477,
                                  "name": "addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6421,
                                  "src": "32360:4:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "32352:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6479,
                              "nodeType": "ExpressionStatement",
                              "src": "32352:12:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6488,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6480,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6417,
                                  "src": "32382:12:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 6483,
                                          "name": "questions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4798,
                                          "src": "32414:9:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                          }
                                        },
                                        "id": 6485,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 6484,
                                          "name": "question_id",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6413,
                                          "src": "32424:11:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "32414:22:13",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                                          "typeString": "struct RealitioERC20.Question storage ref"
                                        }
                                      },
                                      "id": 6486,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "bounty",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4762,
                                      "src": "32414:29:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6481,
                                      "name": "queued_funds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6417,
                                      "src": "32397:12:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6482,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6922,
                                    "src": "32397:16:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6487,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "32397:47:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "32382:62:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6489,
                              "nodeType": "ExpressionStatement",
                              "src": "32382:62:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6495,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 6490,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4798,
                                      "src": "32462:9:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                      }
                                    },
                                    "id": 6492,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 6491,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6413,
                                      "src": "32472:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "32462:22:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$4769_storage",
                                      "typeString": "struct RealitioERC20.Question storage ref"
                                    }
                                  },
                                  "id": 6493,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "bounty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4762,
                                  "src": "32462:29:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 6494,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "32494:1:13",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "32462:33:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6496,
                              "nodeType": "ExpressionStatement",
                              "src": "32462:33:13"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "id": 6533,
                        "name": "queued_funds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6417,
                        "src": "33589:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6534,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6419,
                        "src": "33603:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "id": 6535,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "33588:21:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                      "typeString": "tuple(uint256,address)"
                    }
                  },
                  "functionReturnParameters": 6433,
                  "id": 6536,
                  "nodeType": "Return",
                  "src": "33581:28:13"
                }
              ]
            },
            "documentation": null,
            "id": 6538,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_processHistoryItem",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6413,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31243:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6412,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31243:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6415,
                  "name": "best_answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31264:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6414,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31264:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6417,
                  "name": "queued_funds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31294:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6416,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31294:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6419,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31316:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6418,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31316:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6421,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31340:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6420,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31340:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6423,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31354:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6422,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31354:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6425,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31368:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6424,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31368:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6427,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31384:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6426,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "31384:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31233:175:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6433,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6430,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31431:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6429,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31431:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6432,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31440:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6431,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31440:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31430:18:13"
            },
            "scope": 6825,
            "src": "31205:2412:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6693,
              "nodeType": "Block",
              "src": "34842:723:13",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6562,
                      "name": "qi",
                      "nodeType": "VariableDeclaration",
                      "scope": 6694,
                      "src": "34861:10:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6561,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "34861:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6563,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34861:10:13"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6565,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 6694,
                      "src": "34881:9:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6564,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "34881:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6566,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34881:9:13"
                },
                {
                  "body": {
                    "id": 6688,
                    "nodeType": "Block",
                    "src": "34945:594:13",
                    "statements": [
                      {
                        "assignments": [
                          6579
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6579,
                            "name": "qid",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "34959:11:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 6578,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "34959:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6583,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6580,
                            "name": "question_ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6541,
                            "src": "34973:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 6582,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6581,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6562,
                            "src": "34986:2:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "34973:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "34959:30:13"
                      },
                      {
                        "assignments": [
                          6585
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6585,
                            "name": "ln",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35003:10:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6584,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "35003:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6589,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6586,
                            "name": "lengths",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6544,
                            "src": "35016:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "id": 6588,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6587,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6562,
                            "src": "35024:2:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "35016:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35003:24:13"
                      },
                      {
                        "assignments": [
                          6593
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6593,
                            "name": "hh",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35041:19:13",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6591,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35041:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6592,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35041:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6599,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6597,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6585,
                              "src": "35077:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6596,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35063:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6594,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35067:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6595,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35067:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 6598,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35063:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35041:39:13"
                      },
                      {
                        "assignments": [
                          6603
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6603,
                            "name": "ad",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35094:19:13",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6601,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "35094:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6602,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35094:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6609,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6607,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6585,
                              "src": "35130:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6606,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35116:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6604,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "35120:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6605,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35120:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 6608,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35116:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory",
                            "typeString": "address[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35094:39:13"
                      },
                      {
                        "assignments": [
                          6613
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6613,
                            "name": "bo",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35147:19:13",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6611,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "35147:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6612,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35147:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6619,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6617,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6585,
                              "src": "35183:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6616,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35169:13:13",
                            "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": 6614,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "35173:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6615,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35173:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            }
                          },
                          "id": 6618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35169:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35147:39:13"
                      },
                      {
                        "assignments": [
                          6623
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6623,
                            "name": "an",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35200:19:13",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6621,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35200:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6622,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35200:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6629,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6627,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6585,
                              "src": "35236:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6626,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35222:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6624,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35226:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6625,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35226:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 6628,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35222:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35200:39:13"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6631,
                            "name": "j",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35253:9:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6630,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "35253:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6632,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35253:9:13"
                      },
                      {
                        "body": {
                          "id": 6678,
                          "nodeType": "Block",
                          "src": "35301:180:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6649,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6643,
                                    "name": "hh",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6593,
                                    "src": "35319:2:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6645,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6644,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6631,
                                    "src": "35322:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35319:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6646,
                                    "name": "hist_hashes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6547,
                                    "src": "35327:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6648,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6647,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6565,
                                    "src": "35339:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35327:14:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "35319:22:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6650,
                              "nodeType": "ExpressionStatement",
                              "src": "35319:22:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6657,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6651,
                                    "name": "ad",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6603,
                                    "src": "35359:2:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 6653,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6652,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6631,
                                    "src": "35362:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35359:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6654,
                                    "name": "addrs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6550,
                                    "src": "35367:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 6656,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6655,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6565,
                                    "src": "35373:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35367:8:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "35359:16:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6658,
                              "nodeType": "ExpressionStatement",
                              "src": "35359:16:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6665,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6659,
                                    "name": "bo",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6613,
                                    "src": "35393:2:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 6661,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6660,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6631,
                                    "src": "35396:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35393:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6662,
                                    "name": "bonds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6553,
                                    "src": "35401:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 6664,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6663,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6565,
                                    "src": "35407:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35401:8:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "35393:16:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6666,
                              "nodeType": "ExpressionStatement",
                              "src": "35393:16:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6673,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6667,
                                    "name": "an",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6623,
                                    "src": "35427:2:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6669,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6668,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6631,
                                    "src": "35430:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35427:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6670,
                                    "name": "answers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6556,
                                    "src": "35435:7:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6672,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6671,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6565,
                                    "src": "35443:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35435:10:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "35427:18:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6674,
                              "nodeType": "ExpressionStatement",
                              "src": "35427:18:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6676,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "35463:3:13",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 6675,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6565,
                                  "src": "35463:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6677,
                              "nodeType": "ExpressionStatement",
                              "src": "35463:3:13"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6639,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6637,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6631,
                            "src": "35288:1:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6638,
                            "name": "ln",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6585,
                            "src": "35292:2:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "35288:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6679,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 6635,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 6633,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6631,
                              "src": "35281:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 6634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "35285:1:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "35281:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6636,
                          "nodeType": "ExpressionStatement",
                          "src": "35281:5:13"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 6641,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "35296:3:13",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 6640,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6631,
                              "src": "35296:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6642,
                          "nodeType": "ExpressionStatement",
                          "src": "35296:3:13"
                        },
                        "nodeType": "ForStatement",
                        "src": "35276:205:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6681,
                              "name": "qid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6579,
                              "src": "35508:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6682,
                              "name": "hh",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6593,
                              "src": "35513:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6683,
                              "name": "ad",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6603,
                              "src": "35517:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6684,
                              "name": "bo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6613,
                              "src": "35521:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6685,
                              "name": "an",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6623,
                              "src": "35525:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            ],
                            "id": 6680,
                            "name": "claimWinnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6332,
                            "src": "35494:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (bytes32,bytes32[] memory,address[] memory,uint256[] memory,bytes32[] memory)"
                            }
                          },
                          "id": 6686,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35494:34:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6687,
                        "nodeType": "ExpressionStatement",
                        "src": "35494:34:13"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6571,
                      "name": "qi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6562,
                      "src": "34913:2:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6572,
                        "name": "question_ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6541,
                        "src": "34918:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 6573,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "34918:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "34913:24:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6689,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6569,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 6567,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6562,
                        "src": "34905:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "34910:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "34905:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6570,
                    "nodeType": "ExpressionStatement",
                    "src": "34905:6:13"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6576,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "34939:4:13",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6575,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6562,
                        "src": "34939:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6577,
                    "nodeType": "ExpressionStatement",
                    "src": "34939:4:13"
                  },
                  "nodeType": "ForStatement",
                  "src": "34900:639:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6690,
                      "name": "withdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 432,
                      "src": "35548:8:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 6691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "35548:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6692,
                  "nodeType": "ExpressionStatement",
                  "src": "35548:10:13"
                }
              ]
            },
            "documentation": "@notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n Caller must provide the answer history for each question, in reverse order\n @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n @param question_ids The IDs of the questions you want to claim for\n @param lengths The number of history entries you will supply for each question ID\n @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n @param answers In a single list for all supplied questions, each answer supplied, or commitment ID ",
            "id": 6694,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 6559,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6558,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4831,
                  "src": "34754:8:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "34754:10:13"
              }
            ],
            "name": "claimMultipleAndWithdrawBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6557,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6541,
                  "name": "question_ids",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34612:22:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6539,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34612:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6540,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34612:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6544,
                  "name": "lengths",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34636:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6542,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "34636:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6543,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34636:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6547,
                  "name": "hist_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34664:21:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6545,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34664:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6546,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34664:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6550,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34687:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6548,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "34687:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6549,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34687:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6553,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34704:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6551,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "34704:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6552,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34704:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6556,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34721:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6554,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34721:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6555,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34721:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34602:142:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6560,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "34842:0:13"
            },
            "scope": 6825,
            "src": "34562:1003:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6706,
              "nodeType": "Block",
              "src": "35788:59:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6701,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "35805:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6703,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6702,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6696,
                        "src": "35815:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "35805:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6704,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "content_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4750,
                    "src": "35805:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6700,
                  "id": 6705,
                  "nodeType": "Return",
                  "src": "35798:42:13"
                }
              ]
            },
            "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
            "id": 6707,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getContentHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6697,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6696,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6707,
                  "src": "35733:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6695,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35733:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35732:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6700,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6699,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6707,
                  "src": "35779:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6698,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35779:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35778:9:13"
            },
            "scope": 6825,
            "src": "35709:138:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6719,
              "nodeType": "Block",
              "src": "36046:57:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6714,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "36063:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6716,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6715,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6709,
                        "src": "36073:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36063:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6717,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "arbitrator",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4752,
                    "src": "36063:33:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 6713,
                  "id": 6718,
                  "nodeType": "Return",
                  "src": "36056:40:13"
                }
              ]
            },
            "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
            "id": 6720,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6709,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6720,
                  "src": "35991:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6708,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35991:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35990:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6712,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6720,
                  "src": "36037:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6711,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "36037:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36036:9:13"
            },
            "scope": 6825,
            "src": "35968:135:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6732,
              "nodeType": "Block",
              "src": "36314:57:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6727,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "36331:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6729,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6728,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6722,
                        "src": "36341:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36331:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6730,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4754,
                    "src": "36331:33:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6726,
                  "id": 6731,
                  "nodeType": "Return",
                  "src": "36324:40:13"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
            "id": 6733,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOpeningTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6723,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6722,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "36260:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6721,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36260:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36259:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6726,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6725,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "36306:6:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6724,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36306:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36305:8:13"
            },
            "scope": 6825,
            "src": "36238:133:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6745,
              "nodeType": "Block",
              "src": "36572:54:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6740,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "36589:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6742,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6741,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6735,
                        "src": "36599:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36589:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6743,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "timeout",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4756,
                    "src": "36589:30:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6739,
                  "id": 6744,
                  "nodeType": "Return",
                  "src": "36582:37:13"
                }
              ]
            },
            "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
            "id": 6746,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTimeout",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6736,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6735,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6746,
                  "src": "36518:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6734,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36518:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36517:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6739,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6738,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6746,
                  "src": "36564:6:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6737,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36564:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36563:8:13"
            },
            "scope": 6825,
            "src": "36498:128:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6758,
              "nodeType": "Block",
              "src": "36842:58:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6753,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "36859:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6755,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6754,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6748,
                        "src": "36869:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36859:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6756,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4758,
                    "src": "36859:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6752,
                  "id": 6757,
                  "nodeType": "Return",
                  "src": "36852:41:13"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
            "id": 6759,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFinalizeTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6748,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6759,
                  "src": "36788:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36788:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36787:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6752,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6751,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6759,
                  "src": "36834:6:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6750,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36834:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36833:8:13"
            },
            "scope": 6825,
            "src": "36765:135:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6771,
              "nodeType": "Block",
              "src": "37107:69:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6766,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "37124:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6768,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6767,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6761,
                        "src": "37134:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37124:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6769,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "is_pending_arbitration",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4760,
                    "src": "37124:45:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6765,
                  "id": 6770,
                  "nodeType": "Return",
                  "src": "37117:52:13"
                }
              ]
            },
            "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
            "id": 6772,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isPendingArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6761,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6772,
                  "src": "37055:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6760,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37055:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37054:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6765,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6764,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6772,
                  "src": "37101:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6763,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "37101:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37100:6:13"
            },
            "scope": 6825,
            "src": "37025:151:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6784,
              "nodeType": "Block",
              "src": "37429:53:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6779,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "37446:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6781,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6780,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6774,
                        "src": "37456:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37446:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6782,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bounty",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4762,
                    "src": "37446:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6778,
                  "id": 6783,
                  "nodeType": "Return",
                  "src": "37439:36:13"
                }
              ]
            },
            "documentation": "@notice Returns the current total unclaimed bounty\n @dev Set back to zero once the bounty has been claimed\n @param question_id The ID of the question ",
            "id": 6785,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBounty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6774,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6785,
                  "src": "37374:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6773,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37374:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37373:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6778,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6777,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6785,
                  "src": "37420:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6776,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37420:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37419:9:13"
            },
            "scope": 6825,
            "src": "37355:127:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6797,
              "nodeType": "Block",
              "src": "37665:58:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6792,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "37682:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6794,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6793,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6787,
                        "src": "37692:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37682:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6795,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "37682:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6791,
                  "id": 6796,
                  "nodeType": "Return",
                  "src": "37675:41:13"
                }
              ]
            },
            "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
            "id": 6798,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBestAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6788,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6787,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6798,
                  "src": "37610:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6786,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37610:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37609:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6790,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6798,
                  "src": "37656:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6789,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37656:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37655:9:13"
            },
            "scope": 6825,
            "src": "37587:136:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6810,
              "nodeType": "Block",
              "src": "37986:59:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6805,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "38003:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6807,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6806,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6800,
                        "src": "38013:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "38003:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6808,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4766,
                    "src": "38003:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6804,
                  "id": 6809,
                  "nodeType": "Return",
                  "src": "37996:42:13"
                }
              ]
            },
            "documentation": "@notice Returns the history hash of the question \n @param question_id The ID of the question \n @dev Updated on each answer, then rewound as each is claimed",
            "id": 6811,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHistoryHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6801,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6800,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6811,
                  "src": "37931:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6799,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37931:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37930:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6804,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6803,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6811,
                  "src": "37977:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6802,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37977:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37976:9:13"
            },
            "scope": 6825,
            "src": "37907:138:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6823,
              "nodeType": "Block",
              "src": "38244:51:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6818,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "38261:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6820,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6819,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6813,
                        "src": "38271:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "38261:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6821,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4768,
                    "src": "38261:27:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6817,
                  "id": 6822,
                  "nodeType": "Return",
                  "src": "38254:34:13"
                }
              ]
            },
            "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
            "id": 6824,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBond",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6813,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6824,
                  "src": "38189:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6812,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "38189:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "38188:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6817,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6816,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6824,
                  "src": "38235:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6815,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "38235:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "38234:9:13"
            },
            "scope": 6825,
            "src": "38172:123:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 6826,
        "src": "133:38165:13"
      }
    ],
    "src": "0:38299:13"
  },
  "legacyAST": {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioERC20.sol",
    "exportedSymbols": {
      "RealitioERC20": [
        6825
      ]
    },
    "id": 6826,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4622,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:13"
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath256.sol",
        "file": "./RealitioSafeMath256.sol",
        "id": 4623,
        "nodeType": "ImportDirective",
        "scope": 6826,
        "sourceUnit": 6924,
        "src": "26:35:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath32.sol",
        "file": "./RealitioSafeMath32.sol",
        "id": 4624,
        "nodeType": "ImportDirective",
        "scope": 6826,
        "sourceUnit": 6951,
        "src": "62:34:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/BalanceHolderERC20.sol",
        "file": "./BalanceHolderERC20.sol",
        "id": 4625,
        "nodeType": "ImportDirective",
        "scope": 6826,
        "sourceUnit": 434,
        "src": "97:34:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4626,
              "name": "BalanceHolder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 433,
              "src": "159:13:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BalanceHolder_$433",
                "typeString": "contract BalanceHolder"
              }
            },
            "id": 4627,
            "nodeType": "InheritanceSpecifier",
            "src": "159:13:13"
          }
        ],
        "contractDependencies": [
          433
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6825,
        "linearizedBaseContracts": [
          6825,
          433
        ],
        "name": "RealitioERC20",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 4630,
            "libraryName": {
              "contractScope": null,
              "id": 4628,
              "name": "RealitioSafeMath256",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6923,
              "src": "186:19:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath256_$6923",
                "typeString": "library RealitioSafeMath256"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "180:38:13",
            "typeName": {
              "id": 4629,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "210:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 4633,
            "libraryName": {
              "contractScope": null,
              "id": 4631,
              "name": "RealitioSafeMath32",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6950,
              "src": "229:18:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath32_$6950",
                "typeString": "library RealitioSafeMath32"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "223:36:13",
            "typeName": {
              "id": 4632,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "252:6:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            }
          },
          {
            "constant": true,
            "id": 4638,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "265:42:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 4634,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "265:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 4636,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "305:1:13",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 4635,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "297:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 4637,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "297:10:13",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4643,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "390:39:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 4639,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "390:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 4641,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "427:1:13",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 4640,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "419:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 4642,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "419:10:13",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4646,
            "name": "UNANSWERED",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "524:30:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 4644,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "524:6:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4645,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "553:1:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4649,
            "name": "COMMITMENT_NON_EXISTENT",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "647:44:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4647,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "647:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4648,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "690:1:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4652,
            "name": "COMMITMENT_TIMEOUT_RATIO",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "775:44:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 4650,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "775:6:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 4651,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "818:1:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4658,
            "name": "LogSetQuestionFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4654,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4658,
                  "src": "859:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4653,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "859:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4656,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 4658,
                  "src": "887:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4655,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "887:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "849:58:13"
            },
            "src": "826:82:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4666,
            "name": "LogNewTemplate",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4665,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4660,
                  "indexed": true,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4666,
                  "src": "944:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4659,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "944:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4662,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4666,
                  "src": "981:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4661,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4664,
                  "indexed": false,
                  "name": "question_text",
                  "nodeType": "VariableDeclaration",
                  "scope": 4666,
                  "src": "1012:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4663,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "934:104:13"
            },
            "src": "914:125:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4688,
            "name": "LogNewQuestion",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4668,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1075:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4667,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1075:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4670,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1112:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4669,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1112:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4672,
                  "indexed": false,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1143:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4671,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1143:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4674,
                  "indexed": false,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1172:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4673,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1172:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4676,
                  "indexed": true,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1197:28:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4675,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1197:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4678,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1235:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4677,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1235:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4680,
                  "indexed": false,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1264:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4679,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4682,
                  "indexed": false,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1288:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4681,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1288:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4684,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1315:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4683,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1315:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4686,
                  "indexed": false,
                  "name": "created",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "1338:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4685,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1338:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1065:294:13"
            },
            "src": "1045:315:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4698,
            "name": "LogFundAnswerBounty",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4697,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4690,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4698,
                  "src": "1401:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4689,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4692,
                  "indexed": false,
                  "name": "bounty_added",
                  "nodeType": "VariableDeclaration",
                  "scope": 4698,
                  "src": "1438:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4691,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1438:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4694,
                  "indexed": false,
                  "name": "bounty",
                  "nodeType": "VariableDeclaration",
                  "scope": 4698,
                  "src": "1468:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4693,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1468:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4696,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4698,
                  "src": "1492:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4695,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1492:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1391:128:13"
            },
            "src": "1366:154:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4714,
            "name": "LogNewAnswer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4700,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1554:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4699,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1554:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4702,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1578:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4701,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1578:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4704,
                  "indexed": false,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1615:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4703,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1615:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4706,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1645:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4705,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1645:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4708,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1675:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4707,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1675:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4710,
                  "indexed": false,
                  "name": "ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1697:10:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4709,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1697:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4712,
                  "indexed": false,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "1717:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4711,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1717:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1544:197:13"
            },
            "src": "1526:216:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4728,
            "name": "LogAnswerReveal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4727,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4716,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1779:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4715,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1779:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4718,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1817:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4717,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1817:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4720,
                  "indexed": true,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1848:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4719,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1848:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4722,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1886:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4721,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1886:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4724,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1911:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4723,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1911:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4726,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4728,
                  "src": "1935:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4725,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1935:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1769:184:13"
            },
            "src": "1748:206:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4734,
            "name": "LogNotifyOfArbitrationRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4730,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4734,
                  "src": "2005:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4729,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2005:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4732,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4734,
                  "src": "2042:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4731,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2042:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1995:74:13"
            },
            "src": "1960:110:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4740,
            "name": "LogFinalize",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4739,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4736,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4740,
                  "src": "2103:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4735,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2103:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4738,
                  "indexed": true,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4740,
                  "src": "2140:22:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4737,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2140:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2093:75:13"
            },
            "src": "2076:93:13"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4748,
            "name": "LogClaim",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4742,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4748,
                  "src": "2199:27:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4741,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2199:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4744,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4748,
                  "src": "2236:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4743,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2236:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4746,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 4748,
                  "src": "2266:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4745,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2266:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2189:97:13"
            },
            "src": "2175:112:13"
          },
          {
            "canonicalName": "RealitioERC20.Question",
            "id": 4769,
            "members": [
              {
                "constant": false,
                "id": 4750,
                "name": "content_hash",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2319:20:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4749,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2319:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4752,
                "name": "arbitrator",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2349:18:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4751,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2349:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4754,
                "name": "opening_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2377:17:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4753,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2377:6:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4756,
                "name": "timeout",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2404:14:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4755,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2404:6:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4758,
                "name": "finalize_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2428:18:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4757,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2428:6:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4760,
                "name": "is_pending_arbitration",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2456:27:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 4759,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2456:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4762,
                "name": "bounty",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2493:14:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4761,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2493:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4764,
                "name": "best_answer",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2517:19:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4763,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2517:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4766,
                "name": "history_hash",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2546:20:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4765,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2546:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4768,
                "name": "bond",
                "nodeType": "VariableDeclaration",
                "scope": 4769,
                "src": "2576:12:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4767,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2576:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Question",
            "nodeType": "StructDefinition",
            "scope": 6825,
            "src": "2293:302:13",
            "visibility": "public"
          },
          {
            "canonicalName": "RealitioERC20.Commitment",
            "id": 4776,
            "members": [
              {
                "constant": false,
                "id": 4771,
                "name": "reveal_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4776,
                "src": "2726:16:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4770,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2726:6:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4773,
                "name": "is_revealed",
                "nodeType": "VariableDeclaration",
                "scope": 4776,
                "src": "2752:16:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 4772,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2752:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4775,
                "name": "revealed_answer",
                "nodeType": "VariableDeclaration",
                "scope": 4776,
                "src": "2778:23:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4774,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2778:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Commitment",
            "nodeType": "StructDefinition",
            "scope": 6825,
            "src": "2698:110:13",
            "visibility": "public"
          },
          {
            "canonicalName": "RealitioERC20.Claim",
            "id": 4783,
            "members": [
              {
                "constant": false,
                "id": 4778,
                "name": "payee",
                "nodeType": "VariableDeclaration",
                "scope": 4783,
                "src": "2959:13:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4777,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2959:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4780,
                "name": "last_bond",
                "nodeType": "VariableDeclaration",
                "scope": 4783,
                "src": "2982:17:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4779,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2982:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4782,
                "name": "queued_funds",
                "nodeType": "VariableDeclaration",
                "scope": 4783,
                "src": "3009:20:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4781,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3009:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 6825,
            "src": "2936:100:13",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4786,
            "name": "nextTemplateID",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3042:26:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4784,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "3042:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4785,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3067:1:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4790,
            "name": "templates",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3074:44:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 4789,
              "keyType": {
                "id": 4787,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3082:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3074:27:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueType": {
                "id": 4788,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3093:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4794,
            "name": "template_hashes",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3124:50:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
              "typeString": "mapping(uint256 => bytes32)"
            },
            "typeName": {
              "id": 4793,
              "keyType": {
                "id": 4791,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3132:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3124:27:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                "typeString": "mapping(uint256 => bytes32)"
              },
              "valueType": {
                "id": 4792,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3143:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4798,
            "name": "questions",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3180:45:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
            },
            "typeName": {
              "id": 4797,
              "keyType": {
                "id": 4795,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3188:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3180:28:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4796,
                "name": "Question",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4769,
                "src": "3199:8:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$4769_storage_ptr",
                  "typeString": "struct RealitioERC20.Question"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4802,
            "name": "question_claims",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3231:48:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
            },
            "typeName": {
              "id": 4801,
              "keyType": {
                "id": 4799,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3239:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3231:25:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4800,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4783,
                "src": "3250:5:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$4783_storage_ptr",
                  "typeString": "struct RealitioERC20.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4806,
            "name": "commitments",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3285:49:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
            },
            "typeName": {
              "id": 4805,
              "keyType": {
                "id": 4803,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3293:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3285:30:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4804,
                "name": "Commitment",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4776,
                "src": "3304:10:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$4776_storage_ptr",
                  "typeString": "struct RealitioERC20.Commitment"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4810,
            "name": "arbitrator_question_fees",
            "nodeType": "VariableDeclaration",
            "scope": 6825,
            "src": "3340:59:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 4809,
              "keyType": {
                "id": 4807,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3348:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3340:27:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 4808,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3359:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4826,
              "nodeType": "Block",
              "src": "3452:117:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 4821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4815,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7352,
                            "src": "3470:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 4816,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3470:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4817,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "3484:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4819,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4818,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4812,
                              "src": "3494:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3484:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4820,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4752,
                          "src": "3484:33:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3470:47:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
                        "id": 4822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3519:31:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        },
                        "value": "msg.sender must be arbitrator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        }
                      ],
                      "id": 4814,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "3462:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3462:89:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4824,
                  "nodeType": "ExpressionStatement",
                  "src": "3462:89:13"
                },
                {
                  "id": 4825,
                  "nodeType": "PlaceholderStatement",
                  "src": "3561:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4827,
            "name": "onlyArbitrator",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4813,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4812,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4827,
                  "src": "3431:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4811,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3431:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3430:21:13"
            },
            "src": "3407:162:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4830,
              "nodeType": "Block",
              "src": "3595:18:13",
              "statements": [
                {
                  "id": 4829,
                  "nodeType": "PlaceholderStatement",
                  "src": "3605:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4831,
            "name": "stateAny",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4828,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3592:2:13"
            },
            "src": "3575:38:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4846,
              "nodeType": "Block",
              "src": "3665:99:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4841,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4836,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "3683:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4838,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4837,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4833,
                              "src": "3693:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3683:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4839,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4756,
                          "src": "3683:30:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4840,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3717:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3683:35:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
                        "id": 4842,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3720:25:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        },
                        "value": "question must not exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        }
                      ],
                      "id": 4835,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "3675:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4843,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3675:71:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4844,
                  "nodeType": "ExpressionStatement",
                  "src": "3675:71:13"
                },
                {
                  "id": 4845,
                  "nodeType": "PlaceholderStatement",
                  "src": "3756:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4847,
            "name": "stateNotCreated",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4833,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4847,
                  "src": "3644:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4832,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3644:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3643:21:13"
            },
            "src": "3619:145:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4911,
              "nodeType": "Block",
              "src": "3810:547:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4852,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "3828:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4854,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4853,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4849,
                              "src": "3838:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3828:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4855,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4756,
                          "src": "3828:30:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3861:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3828:34:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 4858,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3864:21:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 4851,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "3820:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4859,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3820:66:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4860,
                  "nodeType": "ExpressionStatement",
                  "src": "3820:66:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3904:46:13",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4862,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "3905:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4864,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4863,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4849,
                              "src": "3915:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3905:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4865,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_pending_arbitration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4760,
                          "src": "3905:45:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
                        "id": 4867,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3952:42:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        },
                        "value": "question must not be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        }
                      ],
                      "id": 4861,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "3896:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4868,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3896:99:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4869,
                  "nodeType": "ExpressionStatement",
                  "src": "3896:99:13"
                },
                {
                  "assignments": [
                    4871
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4871,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 4912,
                      "src": "4005:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 4870,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4005:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4876,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4872,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "4026:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 4874,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4873,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4849,
                        "src": "4036:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4026:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 4875,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4758,
                    "src": "4026:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4005:55:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4886,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4880,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4878,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4871,
                            "src": "4078:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4879,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4646,
                            "src": "4093:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4078:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4885,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4881,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4871,
                            "src": "4107:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4883,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7354,
                                "src": "4128:3:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4882,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4121:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 4884,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4121:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4107:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4078:54:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 4887,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4134:44:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        },
                        "value": "finalization deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        }
                      ],
                      "id": 4877,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4070:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4070:109:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4889,
                  "nodeType": "ExpressionStatement",
                  "src": "4070:109:13"
                },
                {
                  "assignments": [
                    4891
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4891,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 4912,
                      "src": "4189:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 4890,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4189:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4896,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4892,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "4209:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 4894,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4893,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4849,
                        "src": "4219:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4209:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 4895,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4754,
                    "src": "4209:33:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4189:53:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4906,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4900,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4898,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4891,
                            "src": "4260:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4899,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4274:1:13",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4260:15:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4905,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4901,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4891,
                            "src": "4279:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4903,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7354,
                                "src": "4300:3:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4902,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4293:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 4904,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4293:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4279:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4260:44:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 4907,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4306:31:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 4897,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4252:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4252:86:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4909,
                  "nodeType": "ExpressionStatement",
                  "src": "4252:86:13"
                },
                {
                  "id": 4910,
                  "nodeType": "PlaceholderStatement",
                  "src": "4349:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4912,
            "name": "stateOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4850,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4849,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4912,
                  "src": "3789:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4848,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3789:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3788:21:13"
            },
            "src": "3770:587:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4925,
              "nodeType": "Block",
              "src": "4417:122:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4917,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4798,
                            "src": "4435:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 4919,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4918,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4914,
                            "src": "4445:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4435:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4769_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 4920,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "is_pending_arbitration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4760,
                        "src": "4435:45:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
                        "id": 4921,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4482:38:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        },
                        "value": "question must be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        }
                      ],
                      "id": 4916,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4427:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4427:94:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4923,
                  "nodeType": "ExpressionStatement",
                  "src": "4427:94:13"
                },
                {
                  "id": 4924,
                  "nodeType": "PlaceholderStatement",
                  "src": "4531:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4926,
            "name": "statePendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4914,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4926,
                  "src": "4396:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4913,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4396:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4395:21:13"
            },
            "src": "4363:176:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4981,
              "nodeType": "Block",
              "src": "4605:437:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4931,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "4623:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4933,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4932,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4928,
                              "src": "4633:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4623:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4934,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4756,
                          "src": "4623:30:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4935,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4656:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4623:34:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 4937,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4659:21:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 4930,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4615:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4938,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4615:66:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4939,
                  "nodeType": "ExpressionStatement",
                  "src": "4615:66:13"
                },
                {
                  "assignments": [
                    4941
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4941,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 4982,
                      "src": "4691:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 4940,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4691:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4946,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4942,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "4712:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 4944,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4943,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4928,
                        "src": "4722:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4712:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 4945,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4758,
                    "src": "4712:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4691:55:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4956,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4950,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4948,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4941,
                            "src": "4764:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4949,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4646,
                            "src": "4779:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4764:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4955,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4951,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4941,
                            "src": "4793:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4953,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7354,
                                "src": "4814:3:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4952,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4807:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 4954,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4807:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4793:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4764:54:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
                        "id": 4957,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4820:43:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        },
                        "value": "finalization dealine must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        }
                      ],
                      "id": 4947,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4756:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4958,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4756:108:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4959,
                  "nodeType": "ExpressionStatement",
                  "src": "4756:108:13"
                },
                {
                  "assignments": [
                    4961
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4961,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 4982,
                      "src": "4874:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 4960,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4874:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4966,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4962,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "4894:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 4964,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4963,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4928,
                        "src": "4904:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4894:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 4965,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4754,
                    "src": "4894:33:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4874:53:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4976,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4968,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4961,
                            "src": "4945:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4969,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4959:1:13",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4945:15:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 4975,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4971,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4961,
                            "src": "4964:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4973,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7354,
                                "src": "4985:3:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4972,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4978:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 4974,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4978:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4964:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4945:44:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 4977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4991:31:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 4967,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "4937:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4937:86:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4979,
                  "nodeType": "ExpressionStatement",
                  "src": "4937:86:13"
                },
                {
                  "id": 4980,
                  "nodeType": "PlaceholderStatement",
                  "src": "5034:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4982,
            "name": "stateOpenOrPendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4929,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4928,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4982,
                  "src": "4584:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4927,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4584:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4583:21:13"
            },
            "src": "4545:497:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4994,
              "nodeType": "Block",
              "src": "5093:91:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4988,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4984,
                            "src": "5123:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4987,
                          "name": "isFinalized",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6035,
                          "src": "5111:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 4989,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5111:24:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
                        "id": 4990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5137:28:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        },
                        "value": "question must be finalized"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        }
                      ],
                      "id": 4986,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "5103:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5103:63:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4992,
                  "nodeType": "ExpressionStatement",
                  "src": "5103:63:13"
                },
                {
                  "id": 4993,
                  "nodeType": "PlaceholderStatement",
                  "src": "5176:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 4995,
            "name": "stateFinalized",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4985,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4984,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4995,
                  "src": "5072:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4983,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5072:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5071:21:13"
            },
            "src": "5048:136:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5023,
              "nodeType": "Block",
              "src": "5251:184:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5004,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5002,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4999,
                          "src": "5269:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5003,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5278:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5269:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520706f736974697665",
                        "id": 5005,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5281:23:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        },
                        "value": "bond must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        }
                      ],
                      "id": 5001,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "5261:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5261:44:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5007,
                  "nodeType": "ExpressionStatement",
                  "src": "5261:44:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5009,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4999,
                          "src": "5324:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 5015,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5367:1:13",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 5010,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4798,
                                      "src": "5335:9:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                      }
                                    },
                                    "id": 5012,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 5011,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4997,
                                      "src": "5345:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5335:22:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$4769_storage",
                                      "typeString": "struct RealitioERC20.Question storage ref"
                                    }
                                  },
                                  "id": 5013,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "bond",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4768,
                                  "src": "5335:27:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 5014,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "mul",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6860,
                                "src": "5335:31:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 5016,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5335:34:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 5017,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5334:36:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5324:46:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
                        "id": 5019,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5372:44:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        },
                        "value": "bond must be double at least previous bond"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        }
                      ],
                      "id": 5008,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "5316:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5316:101:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5021,
                  "nodeType": "ExpressionStatement",
                  "src": "5316:101:13"
                },
                {
                  "id": 5022,
                  "nodeType": "PlaceholderStatement",
                  "src": "5427:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 5024,
            "name": "bondMustDouble",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4997,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5024,
                  "src": "5214:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4996,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5214:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4999,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5024,
                  "src": "5235:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4998,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5235:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5213:37:13"
            },
            "src": "5190:245:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5046,
              "nodeType": "Block",
              "src": "5528:159:13",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5032,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5030,
                      "name": "max_previous",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5028,
                      "src": "5542:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5031,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5557:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5542:16:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5044,
                  "nodeType": "IfStatement",
                  "src": "5538:132:13",
                  "trueBody": {
                    "id": 5043,
                    "nodeType": "Block",
                    "src": "5560:110:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 5039,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5034,
                                    "name": "questions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4798,
                                    "src": "5582:9:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                    }
                                  },
                                  "id": 5036,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 5035,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5026,
                                    "src": "5592:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5582:22:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Question_$4769_storage",
                                    "typeString": "struct RealitioERC20.Question storage ref"
                                  }
                                },
                                "id": 5037,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "bond",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4768,
                                "src": "5582:27:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 5038,
                                "name": "max_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5028,
                                "src": "5613:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5582:43:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
                              "id": 5040,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5627:31:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              },
                              "value": "bond must exceed max_previous"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              }
                            ],
                            "id": 5033,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              7355,
                              7356
                            ],
                            "referencedDeclaration": 7356,
                            "src": "5574:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5041,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5574:85:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5042,
                        "nodeType": "ExpressionStatement",
                        "src": "5574:85:13"
                      }
                    ]
                  }
                },
                {
                  "id": 5045,
                  "nodeType": "PlaceholderStatement",
                  "src": "5679:1:13"
                }
              ]
            },
            "documentation": null,
            "id": 5047,
            "name": "previousBondMustNotBeatMaxPrevious",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5026,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5047,
                  "src": "5485:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5025,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5485:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5028,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5047,
                  "src": "5506:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5506:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5484:43:13"
            },
            "src": "5441:246:13",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5065,
              "nodeType": "Block",
              "src": "5742:108:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_contract$_IERC20_$1173",
                          "typeString": "contract IERC20"
                        },
                        "id": 5057,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5053,
                          "name": "token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 389,
                          "src": "5760:5:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$1173",
                            "typeString": "contract IERC20"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 5055,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5776:3:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 5054,
                            "name": "IERC20",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1173,
                            "src": "5769:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IERC20_$1173_$",
                              "typeString": "type(contract IERC20)"
                            }
                          },
                          "id": 5056,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5769:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$1173",
                            "typeString": "contract IERC20"
                          }
                        },
                        "src": "5760:20:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e6365",
                        "id": 5058,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5782:36:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
                          "typeString": "literal_string \"Token can only be initialized once\""
                        },
                        "value": "Token can only be initialized once"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
                          "typeString": "literal_string \"Token can only be initialized once\""
                        }
                      ],
                      "id": 5052,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "5752:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5752:67:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5060,
                  "nodeType": "ExpressionStatement",
                  "src": "5752:67:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5061,
                      "name": "token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 389,
                      "src": "5829:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$1173",
                        "typeString": "contract IERC20"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5062,
                      "name": "_token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5049,
                      "src": "5837:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$1173",
                        "typeString": "contract IERC20"
                      }
                    },
                    "src": "5829:14:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1173",
                      "typeString": "contract IERC20"
                    }
                  },
                  "id": 5064,
                  "nodeType": "ExpressionStatement",
                  "src": "5829:14:13"
                }
              ]
            },
            "documentation": null,
            "id": 5066,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5050,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5049,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 5066,
                  "src": "5711:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$1173",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5048,
                    "name": "IERC20",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1173,
                    "src": "5711:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1173",
                      "typeString": "contract IERC20"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5710:15:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5051,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5742:0:13"
            },
            "scope": 6825,
            "src": "5693:157:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5089,
              "nodeType": "Block",
              "src": "6037:538:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5070,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6062:65:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5069,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6047:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6047:81:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5072,
                  "nodeType": "ExpressionStatement",
                  "src": "6047:81:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5074,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6153:81:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5073,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6138:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5075,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6138:97:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5076,
                  "nodeType": "ExpressionStatement",
                  "src": "6138:97:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5078,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6260:92:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5077,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6245:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6245:108:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5080,
                  "nodeType": "ExpressionStatement",
                  "src": "6245:108:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5082,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6378:94:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5081,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6363:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6363:110:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5084,
                  "nodeType": "ExpressionStatement",
                  "src": "6363:110:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5086,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6498:69:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5085,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "6483:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5087,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6483:85:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5088,
                  "nodeType": "ExpressionStatement",
                  "src": "6483:85:13"
                }
              ]
            },
            "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.",
            "id": 5090,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5067,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6022:2:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5068,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6037:0:13"
            },
            "scope": 6825,
            "src": "6011:564:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5110,
              "nodeType": "Block",
              "src": "6920:108:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5097,
                        "name": "arbitrator_question_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4810,
                        "src": "6930:24:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 5100,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5098,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "6955:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6955:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6930:36:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5101,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5092,
                      "src": "6969:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6930:42:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5103,
                  "nodeType": "ExpressionStatement",
                  "src": "6930:42:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5105,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "7005:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5106,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7005:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5107,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5092,
                        "src": "7017:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5104,
                      "name": "LogSetQuestionFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4658,
                      "src": "6987:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5108,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6987:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5109,
                  "nodeType": "EmitStatement",
                  "src": "6982:39:13"
                }
              ]
            },
            "documentation": "@notice Function for arbitrator to set an optional per-question fee. \n @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n @param fee The fee to be charged by the arbitrator when a question is asked",
            "id": 5111,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 5095,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5094,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4831,
                  "src": "6895:8:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6895:10:13"
              }
            ],
            "name": "setQuestionFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5093,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5092,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 5111,
                  "src": "6873:11:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5091,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6873:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6872:13:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5096,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6920:0:13"
            },
            "scope": 6825,
            "src": "6849:179:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5158,
              "nodeType": "Block",
              "src": "7497:259:13",
              "statements": [
                {
                  "assignments": [
                    5121
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5121,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5159,
                      "src": "7507:10:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5120,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7507:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5123,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 5122,
                    "name": "nextTemplateID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4786,
                    "src": "7520:14:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7507:27:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5124,
                        "name": "templates",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4790,
                        "src": "7544:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 5126,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5125,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5121,
                        "src": "7554:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7544:13:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5127,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7342,
                        "src": "7560:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 5128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7560:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7544:28:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5130,
                  "nodeType": "ExpressionStatement",
                  "src": "7544:28:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5131,
                        "name": "template_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4794,
                        "src": "7582:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                          "typeString": "mapping(uint256 => bytes32)"
                        }
                      },
                      "id": 5133,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5132,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5121,
                        "src": "7598:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7582:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5137,
                              "name": "content",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5113,
                              "src": "7631:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5135,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7339,
                              "src": "7614:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 5136,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7614:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 5138,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7614:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 5134,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7346,
                        "src": "7604:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 5139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7604:36:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7582:58:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5141,
                  "nodeType": "ExpressionStatement",
                  "src": "7582:58:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5143,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5121,
                        "src": "7670:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5144,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "7674:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7674:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5146,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5113,
                        "src": "7686:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5142,
                      "name": "LogNewTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4666,
                      "src": "7655:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,address,string memory)"
                      }
                    },
                    "id": 5147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7655:39:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5148,
                  "nodeType": "EmitStatement",
                  "src": "7650:44:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5149,
                      "name": "nextTemplateID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4786,
                      "src": "7704:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5152,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7728:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 5150,
                          "name": "id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5121,
                          "src": "7721:2:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6922,
                        "src": "7721:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7721:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7704:26:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5155,
                  "nodeType": "ExpressionStatement",
                  "src": "7704:26:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5156,
                    "name": "id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5121,
                    "src": "7747:2:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5119,
                  "id": 5157,
                  "nodeType": "Return",
                  "src": "7740:9:13"
                }
              ]
            },
            "documentation": "@notice Create a reusable template, which should be a JSON document.\n Placeholders should use gettext() syntax, eg %s.\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 5159,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 5116,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5115,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4831,
                  "src": "7457:8:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7457:10:13"
              }
            ],
            "name": "createTemplate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5114,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5113,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 5159,
                  "src": "7432:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5112,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7432:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7431:16:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5118,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5159,
                  "src": "7488:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5117,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7488:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7487:9:13"
            },
            "scope": 6825,
            "src": "7408:348:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5191,
              "nodeType": "Block",
              "src": "8893:153:13",
              "statements": [
                {
                  "assignments": [
                    5177
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5177,
                      "name": "template_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5192,
                      "src": "8903:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5176,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8903:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5181,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5179,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5161,
                        "src": "8940:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5178,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "8925:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8925:23:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8903:45:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5183,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5177,
                        "src": "8977:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5184,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5163,
                        "src": "8990:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5185,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5165,
                        "src": "9000:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5186,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5167,
                        "src": "9012:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5187,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5169,
                        "src": "9021:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5188,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5171,
                        "src": "9033:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5182,
                      "name": "askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5269,
                      "src": "8965:11:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory,address,uint32,uint32,uint256) returns (bytes32)"
                      }
                    },
                    "id": 5189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8965:74:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5175,
                  "id": 5190,
                  "nodeType": "Return",
                  "src": "8958:81:13"
                }
              ]
            },
            "documentation": "@notice Create a new reusable template and use it to ask a question\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 5192,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createTemplateAndAskQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5172,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5161,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8677:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5160,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8677:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5163,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8702:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5162,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8702:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5165,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8719:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5164,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8719:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5167,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8739:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5166,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8739:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5169,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8755:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5168,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8755:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5171,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8774:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5170,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8774:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8667:127:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5174,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "8884:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5173,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8884:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8883:9:13"
            },
            "scope": 6825,
            "src": "8630:416:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5268,
              "nodeType": "Block",
              "src": "10398:536:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5214,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5210,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4790,
                            "src": "10417:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 5212,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5211,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5194,
                            "src": "10427:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10417:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5213,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10442:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10417:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 5215,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10445:21:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 5209,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "10409:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10409:58:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5217,
                  "nodeType": "ExpressionStatement",
                  "src": "10409:58:13"
                },
                {
                  "assignments": [
                    5219
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5219,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5269,
                      "src": "10478:20:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5218,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10478:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5228,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5223,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5194,
                            "src": "10528:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5224,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5202,
                            "src": "10541:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5225,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5196,
                            "src": "10553:8:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5221,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "10511:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10511:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5226,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10511:51:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5220,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "10501:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5227,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10501:62:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10478:85:13"
                },
                {
                  "assignments": [
                    5230
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5230,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5269,
                      "src": "10573:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5229,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10573:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5242,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5234,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5219,
                            "src": "10622:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5235,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5198,
                            "src": "10636:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5236,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5200,
                            "src": "10648:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5237,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7352,
                              "src": "10657:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5238,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10657:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5239,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5204,
                            "src": "10669:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5232,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "10605:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10605:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5240,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10605:70:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5231,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "10595:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5241,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10595:81:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10573:103:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5244,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5230,
                        "src": "10700:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5245,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5219,
                        "src": "10713:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5246,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5198,
                        "src": "10727:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5247,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5200,
                        "src": "10739:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5248,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5202,
                        "src": "10748:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5249,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10760:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 5243,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5537,
                      "src": "10687:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
                      }
                    },
                    "id": 5250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10687:75:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5251,
                  "nodeType": "ExpressionStatement",
                  "src": "10687:75:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5253,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5230,
                        "src": "10792:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5254,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "10805:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5255,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10805:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5256,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5194,
                        "src": "10817:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5257,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5196,
                        "src": "10830:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5258,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5219,
                        "src": "10840:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5259,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5198,
                        "src": "10854:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5260,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5200,
                        "src": "10866:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5261,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5202,
                        "src": "10875:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5262,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5204,
                        "src": "10887:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5263,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7354,
                        "src": "10894:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5252,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4688,
                      "src": "10777:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 5264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10777:121:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5265,
                  "nodeType": "EmitStatement",
                  "src": "10772:126:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5266,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5230,
                    "src": "10916:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5208,
                  "id": 5267,
                  "nodeType": "Return",
                  "src": "10909:18:13"
                }
              ]
            },
            "documentation": "@notice Ask a new question without a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created question, created deterministically.",
            "id": 5269,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5194,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10192:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5193,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10192:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5196,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10213:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5195,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "10213:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5198,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10230:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5197,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10230:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5200,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10250:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5199,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10250:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5202,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10266:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5201,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10266:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5204,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10285:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10285:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10191:108:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5207,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5269,
                  "src": "10389:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5206,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10389:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10388:9:13"
            },
            "scope": 6825,
            "src": "10171:763:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5351,
              "nodeType": "Block",
              "src": "12154:581:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5289,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5283,
                        "src": "12187:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5288,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5421,
                      "src": "12165:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5290,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12165:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5291,
                  "nodeType": "ExpressionStatement",
                  "src": "12165:29:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5297,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5293,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4790,
                            "src": "12213:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 5295,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5294,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5271,
                            "src": "12223:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12213:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5296,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12238:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12213:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 5298,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12241:21:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 5292,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "12205:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12205:58:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5300,
                  "nodeType": "ExpressionStatement",
                  "src": "12205:58:13"
                },
                {
                  "assignments": [
                    5302
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5302,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5352,
                      "src": "12274:20:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5301,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12274:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5311,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5306,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5271,
                            "src": "12324:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5307,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5279,
                            "src": "12337:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5308,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5273,
                            "src": "12349:8:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5304,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "12307:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5305,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12307:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5309,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12307:51:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5303,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "12297:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5310,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12297:62:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12274:85:13"
                },
                {
                  "assignments": [
                    5313
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5313,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5352,
                      "src": "12369:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5312,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12369:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5325,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5317,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5302,
                            "src": "12418:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5318,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5275,
                            "src": "12432:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5319,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5277,
                            "src": "12444:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5320,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7352,
                              "src": "12453:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5321,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12453:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5322,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5281,
                            "src": "12465:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5315,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "12401:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5316,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12401:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12401:70:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5314,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "12391:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12391:81:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12369:103:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5327,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5313,
                        "src": "12496:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5328,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5302,
                        "src": "12509:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5329,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5275,
                        "src": "12523:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5330,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5277,
                        "src": "12535:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5331,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "12544:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5332,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5283,
                        "src": "12556:6:13",
                        "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_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5326,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5537,
                      "src": "12483:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
                      }
                    },
                    "id": 5333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12483:80:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5334,
                  "nodeType": "ExpressionStatement",
                  "src": "12483:80:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5336,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5313,
                        "src": "12593:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5337,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "12606:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5338,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12606:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5339,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5271,
                        "src": "12618:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5340,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5273,
                        "src": "12631:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5341,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5302,
                        "src": "12641:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5342,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5275,
                        "src": "12655:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5343,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5277,
                        "src": "12667:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5344,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "12676:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5345,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5281,
                        "src": "12688:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5346,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7354,
                        "src": "12695:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5335,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4688,
                      "src": "12578:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 5347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12578:121:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5348,
                  "nodeType": "EmitStatement",
                  "src": "12573:126:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5349,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5313,
                    "src": "12717:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5287,
                  "id": 5350,
                  "nodeType": "Return",
                  "src": "12710:18:13"
                }
              ]
            },
            "documentation": "@notice Ask a new question with a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @param tokens The combined initial question bounty and question fee\n @return The ID of the newly-created question, created deterministically.",
            "id": 5352,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestionERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5284,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5271,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "11932:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5270,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11932:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5273,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "11953:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5272,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11953:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5275,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "11970:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5274,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11970:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5277,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "11990:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5276,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11990:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5279,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "12006:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5278,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12006:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5281,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "12025:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5280,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12025:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5283,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "12040:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5282,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12040:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11931:124:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5287,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5286,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5352,
                  "src": "12145:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5285,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12145:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12144:9:13"
            },
            "scope": 6825,
            "src": "11906:829:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5420,
              "nodeType": "Block",
              "src": "12802:646:13",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5359,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5357,
                      "name": "tokens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5354,
                      "src": "12817:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5358,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12827:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12817:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5362,
                  "nodeType": "IfStatement",
                  "src": "12813:48:13",
                  "trueBody": {
                    "id": 5361,
                    "nodeType": "Block",
                    "src": "12830:31:13",
                    "statements": [
                      {
                        "expression": null,
                        "functionReturnParameters": 5356,
                        "id": 5360,
                        "nodeType": "Return",
                        "src": "12844:7:13"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    5364
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5364,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 5421,
                      "src": "12871:11:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5363,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12871:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5369,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5365,
                      "name": "balanceOf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 393,
                      "src": "12885:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 5368,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5366,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7352,
                        "src": "12895:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5367,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12895:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12885:21:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12871:35:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5370,
                      "name": "bal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5364,
                      "src": "12990:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5371,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12996:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12990:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5405,
                  "nodeType": "IfStatement",
                  "src": "12986:258:13",
                  "trueBody": {
                    "id": 5404,
                    "nodeType": "Block",
                    "src": "12999:245:13",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5375,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5373,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5364,
                            "src": "13017:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5374,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5354,
                            "src": "13024:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13017:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 5402,
                          "nodeType": "Block",
                          "src": "13134:100:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5393,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 5388,
                                  "name": "tokens",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5354,
                                  "src": "13152:6:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 5391,
                                      "name": "bal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5364,
                                      "src": "13172:3:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5389,
                                      "name": "tokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5354,
                                      "src": "13161:6:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5390,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6898,
                                    "src": "13161:10:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 5392,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13161:15:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13152:24:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5394,
                              "nodeType": "ExpressionStatement",
                              "src": "13152:24:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5400,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5395,
                                    "name": "balanceOf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 393,
                                    "src": "13194:9:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 5398,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5396,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7352,
                                      "src": "13204:3:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5397,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "13204:10:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13194:21:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 5399,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13218:1:13",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13194:25:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5401,
                              "nodeType": "ExpressionStatement",
                              "src": "13194:25:13"
                            }
                          ]
                        },
                        "id": 5403,
                        "nodeType": "IfStatement",
                        "src": "13013:221:13",
                        "trueBody": {
                          "id": 5387,
                          "nodeType": "Block",
                          "src": "13032:96:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5384,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5376,
                                    "name": "balanceOf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 393,
                                    "src": "13050:9:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 5379,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5377,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7352,
                                      "src": "13060:3:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5378,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "13060:10:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13050:21:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 5382,
                                      "name": "tokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5354,
                                      "src": "13082:6:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5380,
                                      "name": "bal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5364,
                                      "src": "13074:3:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5381,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6898,
                                    "src": "13074:7:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 5383,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13074:15:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13050:39:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5385,
                              "nodeType": "ExpressionStatement",
                              "src": "13050:39:13"
                            },
                            {
                              "expression": null,
                              "functionReturnParameters": 5356,
                              "id": 5386,
                              "nodeType": "Return",
                              "src": "13107:7:13"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5409,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7352,
                              "src": "13328:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "13328:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5412,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7399,
                                "src": "13348:4:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_RealitioERC20_$6825",
                                  "typeString": "contract RealitioERC20"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_RealitioERC20_$6825",
                                  "typeString": "contract RealitioERC20"
                                }
                              ],
                              "id": 5411,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "13340:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 5413,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13340:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5414,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5354,
                            "src": "13355:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5407,
                            "name": "token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 389,
                            "src": "13309:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$1173",
                              "typeString": "contract IERC20"
                            }
                          },
                          "id": 5408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1156,
                          "src": "13309:18:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256) external returns (bool)"
                          }
                        },
                        "id": 5415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13309:53:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756666696369656e7420617070726f7665642062616c616e63653f",
                        "id": 5416,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13364:59:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
                          "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
                        },
                        "value": "Transfer of tokens failed, insufficient approved balance?"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
                          "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
                        }
                      ],
                      "id": 5406,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "13301:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5417,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13301:123:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5418,
                  "nodeType": "ExpressionStatement",
                  "src": "13301:123:13"
                },
                {
                  "expression": null,
                  "functionReturnParameters": 5356,
                  "id": 5419,
                  "nodeType": "Return",
                  "src": "13434:7:13"
                }
              ]
            },
            "documentation": null,
            "id": 5421,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_deductTokensOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5354,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5421,
                  "src": "12772:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5353,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12772:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12771:16:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5356,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12802:0:13"
            },
            "scope": 6825,
            "src": "12741:707:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5536,
              "nodeType": "Block",
              "src": "13641:1316:13",
              "statements": [
                {
                  "assignments": [
                    5440
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5440,
                      "name": "bounty",
                      "nodeType": "VariableDeclaration",
                      "scope": 5537,
                      "src": "13652:14:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5439,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13652:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5442,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 5441,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5433,
                    "src": "13669:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13652:23:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5446,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5444,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5429,
                          "src": "13776:7:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5445,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13786:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "13776:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d75737420626520706f736974697665",
                        "id": 5447,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13789:26:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        },
                        "value": "timeout must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        }
                      ],
                      "id": 5443,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "13768:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13768:48:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5449,
                  "nodeType": "ExpressionStatement",
                  "src": "13768:48:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5453,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5451,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5429,
                          "src": "13835:7:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "333635",
                          "id": 5452,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13845:8:13",
                          "subdenomination": "days",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "365"
                        },
                        "src": "13835:18:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
                        "id": 5454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13855:36:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        },
                        "value": "timeout must be less than 365 days"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        }
                      ],
                      "id": 5450,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "13827:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13827:65:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5456,
                  "nodeType": "ExpressionStatement",
                  "src": "13827:65:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5460,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5458,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5427,
                          "src": "13911:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5459,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4638,
                          "src": "13925:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "13911:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d75737420626520736574",
                        "id": 5461,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13939:24:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        },
                        "value": "arbitrator must be set"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        }
                      ],
                      "id": 5457,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "13903:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13903:61:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5463,
                  "nodeType": "ExpressionStatement",
                  "src": "13903:61:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 5467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5464,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7352,
                        "src": "14356:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5465,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "14356:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 5466,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5427,
                      "src": "14370:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14356:24:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5500,
                  "nodeType": "IfStatement",
                  "src": "14352:327:13",
                  "trueBody": {
                    "id": 5499,
                    "nodeType": "Block",
                    "src": "14382:297:13",
                    "statements": [
                      {
                        "assignments": [
                          5469
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5469,
                            "name": "question_fee",
                            "nodeType": "VariableDeclaration",
                            "scope": 5537,
                            "src": "14396:20:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5468,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "14396:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5473,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5470,
                            "name": "arbitrator_question_fees",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4810,
                            "src": "14419:24:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 5472,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5471,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5427,
                            "src": "14444:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "14419:36:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "14396:59:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 5477,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 5475,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5440,
                                "src": "14477:6:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 5476,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5469,
                                "src": "14487:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "14477:22:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "546f6b656e732070726f7669646564206d75737420636f766572207175657374696f6e20666565",
                              "id": 5478,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14501:41:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_ed62e475d1700c11321de4f059b593d66013ce61fc0c18f9061af3ba4070ff86",
                                "typeString": "literal_string \"Tokens provided must cover question fee\""
                              },
                              "value": "Tokens provided must cover question fee"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_ed62e475d1700c11321de4f059b593d66013ce61fc0c18f9061af3ba4070ff86",
                                "typeString": "literal_string \"Tokens provided must cover question fee\""
                              }
                            ],
                            "id": 5474,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              7355,
                              7356
                            ],
                            "referencedDeclaration": 7356,
                            "src": "14469:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14469:74:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5480,
                        "nodeType": "ExpressionStatement",
                        "src": "14469:74:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5486,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 5481,
                            "name": "bounty",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5440,
                            "src": "14558:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5484,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5469,
                                "src": "14578:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 5482,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5440,
                                "src": "14567:6:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5483,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6898,
                              "src": "14567:10:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5485,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14567:24:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14558:33:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5487,
                        "nodeType": "ExpressionStatement",
                        "src": "14558:33:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5488,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 393,
                              "src": "14605:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 5490,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5489,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5427,
                              "src": "14615:10:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14605:21:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5495,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5469,
                                "src": "14655:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5491,
                                  "name": "balanceOf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 393,
                                  "src": "14629:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 5493,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5492,
                                  "name": "arbitrator",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5427,
                                  "src": "14639:10:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "14629:21:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5494,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6922,
                              "src": "14629:25:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14629:39:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14605:63:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5498,
                        "nodeType": "ExpressionStatement",
                        "src": "14605:63:13"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5506,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5501,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14689:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5502,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14699:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14689:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5504,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "content_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4750,
                      "src": "14689:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5505,
                      "name": "content_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5425,
                      "src": "14727:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "14689:50:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5507,
                  "nodeType": "ExpressionStatement",
                  "src": "14689:50:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5513,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5508,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14749:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5510,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5509,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14759:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14749:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5511,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "arbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4752,
                      "src": "14749:33:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5512,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5427,
                      "src": "14785:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14749:46:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5514,
                  "nodeType": "ExpressionStatement",
                  "src": "14749:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5520,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5515,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14805:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5517,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5516,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14815:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14805:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5518,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "opening_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4754,
                      "src": "14805:33:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5519,
                      "name": "opening_ts",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5431,
                      "src": "14841:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "14805:46:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5521,
                  "nodeType": "ExpressionStatement",
                  "src": "14805:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5522,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14861:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5524,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5523,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14871:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14861:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5525,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4756,
                      "src": "14861:30:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5526,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5429,
                      "src": "14894:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "14861:40:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5528,
                  "nodeType": "ExpressionStatement",
                  "src": "14861:40:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5529,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "14911:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5531,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5530,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5423,
                          "src": "14921:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14911:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5532,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4762,
                      "src": "14911:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5533,
                      "name": "bounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5440,
                      "src": "14943:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14911:38:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5535,
                  "nodeType": "ExpressionStatement",
                  "src": "14911:38:13"
                }
              ]
            },
            "documentation": null,
            "id": 5537,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5436,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5423,
                    "src": "13615:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5437,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5435,
                  "name": "stateNotCreated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4847,
                  "src": "13599:15:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13599:28:13"
              }
            ],
            "name": "_askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5423,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13476:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5422,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13476:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5425,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13497:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5424,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13497:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5427,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13519:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5426,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13519:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5429,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13539:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5428,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13539:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5431,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13555:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5430,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13555:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5433,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5537,
                  "src": "13574:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5432,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13574:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13475:114:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5438,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13641:0:13"
            },
            "scope": 6825,
            "src": "13454:1503:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5575,
              "nodeType": "Block",
              "src": "15370:227:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5548,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5541,
                        "src": "15402:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5547,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5421,
                      "src": "15380:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5549,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15380:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5550,
                  "nodeType": "ExpressionStatement",
                  "src": "15380:29:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5551,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "15419:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5553,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5552,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5539,
                          "src": "15429:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15419:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5554,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4762,
                      "src": "15419:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5560,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5541,
                          "src": "15485:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5555,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "15451:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5557,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5556,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5539,
                              "src": "15461:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15451:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5558,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bounty",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4762,
                          "src": "15451:29:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5559,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6922,
                        "src": "15451:33:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5561,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15451:41:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15419:73:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5563,
                  "nodeType": "ExpressionStatement",
                  "src": "15419:73:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5565,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5539,
                        "src": "15527:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5566,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5541,
                        "src": "15540:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5567,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4798,
                            "src": "15548:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5569,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5568,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5539,
                            "src": "15558:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "15548:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4769_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5570,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "bounty",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4762,
                        "src": "15548:29:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5571,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "15579:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5572,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15579:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5564,
                      "name": "LogFundAnswerBounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4698,
                      "src": "15507:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,uint256,uint256,address)"
                      }
                    },
                    "id": 5573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15507:83:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5574,
                  "nodeType": "EmitStatement",
                  "src": "15502:88:13"
                }
              ]
            },
            "documentation": "@notice Add funds to the bounty for a question\n @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n @param question_id The ID of the question you wish to fund\n @param tokens The number of tokens to fund",
            "id": 5576,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5544,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5539,
                    "src": "15344:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5545,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5543,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4912,
                  "src": "15334:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15334:22:13"
              }
            ],
            "name": "fundAnswerBountyERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5542,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5539,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5576,
                  "src": "15288:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5538,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15288:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5541,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5576,
                  "src": "15309:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5540,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15309:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15287:37:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5546,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15370:0:13"
            },
            "scope": 6825,
            "src": "15257:340:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5620,
              "nodeType": "Block",
              "src": "16402:206:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5599,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5584,
                        "src": "16434:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5598,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5421,
                      "src": "16412:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16412:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5601,
                  "nodeType": "ExpressionStatement",
                  "src": "16412:29:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5603,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5578,
                        "src": "16471:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5604,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5580,
                        "src": "16484:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5605,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "16492:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16492:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5607,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5584,
                        "src": "16504:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 5608,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16512:5:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5602,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5881,
                      "src": "16451:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5609,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16451:67:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5610,
                  "nodeType": "ExpressionStatement",
                  "src": "16451:67:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5612,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5578,
                        "src": "16549:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5613,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5580,
                        "src": "16562:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5614,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4798,
                            "src": "16570:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5616,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5615,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5578,
                            "src": "16580:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16570:22:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4769_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5617,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timeout",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4756,
                        "src": "16570:30:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 5611,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5910,
                      "src": "16528:20:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 5618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16528:73:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5619,
                  "nodeType": "ExpressionStatement",
                  "src": "16528:73:13"
                }
              ]
            },
            "documentation": "@notice Submit an answer for a question.\n @dev Adds the answer to the history and updates the current \"best\" answer.\n May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param tokens The amount of tokens to submit",
            "id": 5621,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5587,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5578,
                    "src": "16262:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5588,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5586,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4912,
                  "src": "16252:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16252:22:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5590,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5578,
                    "src": "16298:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5591,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5584,
                    "src": "16311:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5592,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5589,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5024,
                  "src": "16283:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16283:35:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5594,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5578,
                    "src": "16362:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5595,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5582,
                    "src": "16375:12:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5596,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5593,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5047,
                  "src": "16327:34:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16327:61:13"
              }
            ],
            "name": "submitAnswerERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5578,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5621,
                  "src": "16168:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5577,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16168:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5580,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5621,
                  "src": "16189:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5579,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16189:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5582,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5621,
                  "src": "16205:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5581,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16205:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5584,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5621,
                  "src": "16227:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5583,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16227:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16167:75:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5597,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16402:0:13"
            },
            "scope": 6825,
            "src": "16141:467:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5659,
              "nodeType": "Block",
              "src": "16889:306:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5629,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4806,
                              "src": "16907:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5631,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5630,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5625,
                              "src": "16919:13:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "16907:26:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5632,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4771,
                          "src": "16907:36:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5633,
                          "name": "COMMITMENT_NON_EXISTENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4649,
                          "src": "16947:23:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16907:63:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
                        "id": 5635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16972:35:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        },
                        "value": "commitment must not already exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        }
                      ],
                      "id": 5628,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "16899:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16899:109:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5637,
                  "nodeType": "ExpressionStatement",
                  "src": "16899:109:13"
                },
                {
                  "assignments": [
                    5639
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5639,
                      "name": "commitment_timeout",
                      "nodeType": "VariableDeclaration",
                      "scope": 5660,
                      "src": "17019:25:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5638,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17019:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5646,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "id": 5645,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5640,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "17047:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5642,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5641,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5623,
                          "src": "17057:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17047:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5643,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4756,
                      "src": "17047:30:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 5644,
                      "name": "COMMITMENT_TIMEOUT_RATIO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4652,
                      "src": "17080:24:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "17047:57:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17019:85:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5657,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5647,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4806,
                          "src": "17114:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5649,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5648,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5625,
                          "src": "17126:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17114:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5650,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "reveal_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4771,
                      "src": "17114:36:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5655,
                          "name": "commitment_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5639,
                          "src": "17169:18:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5652,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7354,
                              "src": "17160:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5651,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "17153:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5653,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17153:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 5654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6949,
                        "src": "17153:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 5656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17153:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "17114:74:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5658,
                  "nodeType": "ExpressionStatement",
                  "src": "17114:74:13"
                }
              ]
            },
            "documentation": null,
            "id": 5660,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_storeCommitment",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5626,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5623,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5660,
                  "src": "16827:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5622,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16827:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5625,
                  "name": "commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5660,
                  "src": "16848:21:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5624,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16848:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16826:44:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5627,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16889:0:13"
            },
            "scope": 6825,
            "src": "16801:394:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5723,
              "nodeType": "Block",
              "src": "18471:361:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5685,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5670,
                        "src": "18504:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5684,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5421,
                      "src": "18482:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5686,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18482:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5687,
                  "nodeType": "ExpressionStatement",
                  "src": "18482:29:13"
                },
                {
                  "assignments": [
                    5689
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5689,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5724,
                      "src": "18522:21:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5688,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "18522:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5698,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5693,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5662,
                            "src": "18573:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5694,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5664,
                            "src": "18586:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5695,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5670,
                            "src": "18599:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5691,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "18556:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5692,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "18556:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5696,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18556:50:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5690,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "18546:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18546:61:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18522:85:13"
                },
                {
                  "assignments": [
                    5700
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5700,
                      "name": "answerer",
                      "nodeType": "VariableDeclaration",
                      "scope": 5724,
                      "src": "18617:16:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5699,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "18617:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5709,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5701,
                            "name": "_answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5668,
                            "src": "18637:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5702,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4638,
                            "src": "18650:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "18637:25:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 5704,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "18636:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 5707,
                      "name": "_answerer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5668,
                      "src": "18679:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5708,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "18636:52:13",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5705,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7352,
                        "src": "18666:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18666:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18617:71:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5711,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5662,
                        "src": "18716:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5712,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5689,
                        "src": "18729:13:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5710,
                      "name": "_storeCommitment",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5660,
                      "src": "18699:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5713,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18699:44:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5714,
                  "nodeType": "ExpressionStatement",
                  "src": "18699:44:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5716,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5662,
                        "src": "18773:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5717,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5689,
                        "src": "18786:13:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5718,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5700,
                        "src": "18801:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5719,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5670,
                        "src": "18811:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 5720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18819:4:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5715,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5881,
                      "src": "18753:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18753:71:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5722,
                  "nodeType": "ExpressionStatement",
                  "src": "18753:71:13"
                }
              ]
            },
            "documentation": "@notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n The commitment_id is stored in the answer history where the answer would normally go.\n Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n @param question_id The ID of the question\n @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n @param tokens Number of tokens sent\n @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
            "id": 5724,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5673,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5662,
                    "src": "18331:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5674,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5672,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4912,
                  "src": "18321:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18321:22:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5676,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5662,
                    "src": "18367:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5677,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5670,
                    "src": "18380:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5678,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5675,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5024,
                  "src": "18352:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18352:35:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5680,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5662,
                    "src": "18431:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5681,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5666,
                    "src": "18444:12:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5682,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5679,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5047,
                  "src": "18396:34:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18396:61:13"
              }
            ],
            "name": "submitAnswerCommitmentERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5671,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5662,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18213:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5661,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18213:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5664,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18234:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5663,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18234:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5666,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18255:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5665,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18255:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5668,
                  "name": "_answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18277:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5667,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18277:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5670,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5724,
                  "src": "18296:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5669,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18296:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18212:99:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5683,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18471:0:13"
            },
            "scope": 6825,
            "src": "18176:656:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5821,
              "nodeType": "Block",
              "src": "19966:746:13",
              "statements": [
                {
                  "assignments": [
                    5739
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5739,
                      "name": "answer_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5822,
                      "src": "19977:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5738,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "19977:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5747,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5743,
                            "name": "answer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5728,
                            "src": "20026:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5744,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5730,
                            "src": "20034:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5741,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "20009:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5742,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20009:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5745,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20009:31:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5740,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "19999:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19999:42:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19977:64:13"
                },
                {
                  "assignments": [
                    5749
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5749,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5822,
                      "src": "20051:21:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5748,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20051:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5758,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5753,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5726,
                            "src": "20102:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5754,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5739,
                            "src": "20115:11:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5755,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5732,
                            "src": "20128:4:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5751,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "20085:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5752,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20085:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20085:48:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5750,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "20075:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5757,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20075:59:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20051:83:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "20153:39:13",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5760,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4806,
                              "src": "20154:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5762,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5761,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5749,
                              "src": "20166:13:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20154:26:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5763,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_revealed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4773,
                          "src": "20154:38:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
                        "id": 5765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20194:44:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        },
                        "value": "commitment must not have been revealed yet"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        }
                      ],
                      "id": 5759,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "20145:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5766,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20145:94:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5767,
                  "nodeType": "ExpressionStatement",
                  "src": "20145:94:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5776,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5769,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4806,
                              "src": "20257:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5771,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5770,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5749,
                              "src": "20269:13:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20257:26:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5772,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4771,
                          "src": "20257:36:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5774,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7354,
                              "src": "20303:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "20296:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5775,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20296:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "20257:50:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 5777,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20309:38:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        },
                        "value": "reveal deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        }
                      ],
                      "id": 5768,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "20249:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20249:99:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5779,
                  "nodeType": "ExpressionStatement",
                  "src": "20249:99:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5785,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5780,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4806,
                          "src": "20359:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5782,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5781,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5749,
                          "src": "20371:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20359:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5783,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealed_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4775,
                      "src": "20359:42:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5784,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5728,
                      "src": "20404:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "20359:51:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5786,
                  "nodeType": "ExpressionStatement",
                  "src": "20359:51:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5787,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4806,
                          "src": "20420:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5789,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5788,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5749,
                          "src": "20432:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20420:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5790,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_revealed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4773,
                      "src": "20420:38:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 5791,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20461:4:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "20420:45:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5793,
                  "nodeType": "ExpressionStatement",
                  "src": "20420:45:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5794,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5732,
                      "src": "20480:4:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5795,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "20488:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5797,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5796,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5726,
                          "src": "20498:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20488:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5798,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4768,
                      "src": "20488:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20480:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5810,
                  "nodeType": "IfStatement",
                  "src": "20476:139:13",
                  "trueBody": {
                    "id": 5809,
                    "nodeType": "Block",
                    "src": "20517:98:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5801,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5726,
                              "src": "20552:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5802,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5728,
                              "src": "20565:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5803,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4798,
                                  "src": "20573:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                  }
                                },
                                "id": 5805,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5804,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5726,
                                  "src": "20583:11:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20573:22:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$4769_storage",
                                  "typeString": "struct RealitioERC20.Question storage ref"
                                }
                              },
                              "id": 5806,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeout",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4756,
                              "src": "20573:30:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 5800,
                            "name": "_updateCurrentAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5910,
                            "src": "20531:20:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                              "typeString": "function (bytes32,bytes32,uint32)"
                            }
                          },
                          "id": 5807,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20531:73:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5808,
                        "nodeType": "ExpressionStatement",
                        "src": "20531:73:13"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5812,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5726,
                        "src": "20646:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5813,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7352,
                          "src": "20659:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5814,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "20659:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5815,
                        "name": "answer_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5739,
                        "src": "20671:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5816,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5728,
                        "src": "20684:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5817,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5730,
                        "src": "20692:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5818,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5732,
                        "src": "20699:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5811,
                      "name": "LogAnswerReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4728,
                      "src": "20630:15:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32,bytes32,uint256,uint256)"
                      }
                    },
                    "id": 5819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20630:74:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5820,
                  "nodeType": "EmitStatement",
                  "src": "20625:79:13"
                }
              ]
            },
            "documentation": "@notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n Updates the current answer unless someone has since supplied a new answer with a higher bond\n msg.sender is intentionally not restricted to the user who originally sent the commitment; \n For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n @param question_id The ID of the question\n @param answer The answer, encoded as bytes32\n @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n @param bond The bond that you paid in your submitAnswerCommitment() transaction",
            "id": 5822,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5735,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5726,
                    "src": "19940:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5736,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5734,
                  "name": "stateOpenOrPendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4982,
                  "src": "19910:29:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19910:42:13"
              }
            ],
            "name": "submitAnswerReveal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5726,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5822,
                  "src": "19835:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5725,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19835:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5728,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5822,
                  "src": "19856:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5727,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19856:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5730,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5822,
                  "src": "19872:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19872:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5732,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 5822,
                  "src": "19887:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19887:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19834:66:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5737,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19966:0:13"
            },
            "scope": 6825,
            "src": "19807:905:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5880,
              "nodeType": "Block",
              "src": "20872:524:13",
              "statements": [
                {
                  "assignments": [
                    5836
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5836,
                      "name": "new_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5881,
                      "src": "20882:24:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5835,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20882:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5850,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 5840,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4798,
                                "src": "20936:9:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                }
                              },
                              "id": 5842,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 5841,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5824,
                                "src": "20946:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "20936:22:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$4769_storage",
                                "typeString": "struct RealitioERC20.Question storage ref"
                              }
                            },
                            "id": 5843,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "history_hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4766,
                            "src": "20936:35:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5844,
                            "name": "answer_or_commitment_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5826,
                            "src": "20973:23:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5845,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5830,
                            "src": "20998:4:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5846,
                            "name": "answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5828,
                            "src": "21004:8:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5847,
                            "name": "is_commitment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5832,
                            "src": "21014:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5838,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "20919:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5839,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20919:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5848,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20919:109:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5837,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7346,
                      "src": "20909:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5849,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20909:120:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20882:147:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5851,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5830,
                      "src": "21137:4:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5852,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "21144:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "21137:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5862,
                  "nodeType": "IfStatement",
                  "src": "21133:73:13",
                  "trueBody": {
                    "id": 5861,
                    "nodeType": "Block",
                    "src": "21147:59:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5859,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 5854,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4798,
                                "src": "21161:9:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                }
                              },
                              "id": 5856,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 5855,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5824,
                                "src": "21171:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "21161:22:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$4769_storage",
                                "typeString": "struct RealitioERC20.Question storage ref"
                              }
                            },
                            "id": 5857,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4768,
                            "src": "21161:27:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 5858,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5830,
                            "src": "21191:4:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21161:34:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5860,
                        "nodeType": "ExpressionStatement",
                        "src": "21161:34:13"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5868,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5863,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "21215:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5865,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5864,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5824,
                          "src": "21225:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21215:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5866,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4766,
                      "src": "21215:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5867,
                      "name": "new_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5836,
                      "src": "21253:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21215:54:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5869,
                  "nodeType": "ExpressionStatement",
                  "src": "21215:54:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5871,
                        "name": "answer_or_commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5826,
                        "src": "21298:23:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5872,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5824,
                        "src": "21323:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5873,
                        "name": "new_history_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5836,
                        "src": "21336:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5874,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5828,
                        "src": "21354:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5875,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5830,
                        "src": "21364:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5876,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7354,
                        "src": "21370:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5877,
                        "name": "is_commitment",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5832,
                        "src": "21375:13:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5870,
                      "name": "LogNewAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4714,
                      "src": "21285:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bytes32,address,uint256,uint256,bool)"
                      }
                    },
                    "id": 5878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21285:104:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5879,
                  "nodeType": "EmitStatement",
                  "src": "21280:109:13"
                }
              ]
            },
            "documentation": null,
            "id": 5881,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_addAnswerToHistory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5833,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5824,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20747:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5823,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20747:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5826,
                  "name": "answer_or_commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20768:31:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5825,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20768:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5828,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20801:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5827,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "20801:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5830,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20819:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5829,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20819:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5832,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 5881,
                  "src": "20833:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5831,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20833:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20746:106:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5834,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20872:0:13"
            },
            "scope": 6825,
            "src": "20718:678:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5909,
              "nodeType": "Block",
              "src": "21503:136:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5895,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5890,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "21513:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5892,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5891,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5883,
                          "src": "21523:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21513:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5893,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "best_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4764,
                      "src": "21513:34:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5894,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5885,
                      "src": "21550:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21513:43:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5896,
                  "nodeType": "ExpressionStatement",
                  "src": "21513:43:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5897,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "21566:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5899,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5898,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5883,
                          "src": "21576:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21566:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5900,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalize_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4758,
                      "src": "21566:34:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5905,
                          "name": "timeout_secs",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5887,
                          "src": "21619:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5902,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7354,
                              "src": "21610:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5901,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "21603:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21603:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 5904,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6949,
                        "src": "21603:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 5906,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21603:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "21566:66:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5908,
                  "nodeType": "ExpressionStatement",
                  "src": "21566:66:13"
                }
              ]
            },
            "documentation": null,
            "id": 5910,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_updateCurrentAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5888,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5883,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5910,
                  "src": "21432:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5882,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21432:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5885,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5910,
                  "src": "21453:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5884,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21453:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5887,
                  "name": "timeout_secs",
                  "nodeType": "VariableDeclaration",
                  "scope": 5910,
                  "src": "21469:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5886,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21469:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21431:58:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5889,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21503:0:13"
            },
            "scope": 6825,
            "src": "21402:237:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5951,
              "nodeType": "Block",
              "src": "22369:257:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5935,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5930,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "22387:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5932,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5931,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5912,
                              "src": "22397:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22387:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5933,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4768,
                          "src": "22387:27:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "22417:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "22387:31:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
                        "id": 5936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22420:68:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        },
                        "value": "Question must already have an answer when arbitration is requested"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        }
                      ],
                      "id": 5929,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "22379:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22379:110:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5938,
                  "nodeType": "ExpressionStatement",
                  "src": "22379:110:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5939,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "22499:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5941,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5940,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5912,
                          "src": "22509:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22499:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5942,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4760,
                      "src": "22499:45:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 5943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22547:4:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "22499:52:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5945,
                  "nodeType": "ExpressionStatement",
                  "src": "22499:52:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5947,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5912,
                        "src": "22596:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5948,
                        "name": "requester",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5914,
                        "src": "22609:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5946,
                      "name": "LogNotifyOfArbitrationRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4734,
                      "src": "22566:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 5949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22566:53:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5950,
                  "nodeType": "EmitStatement",
                  "src": "22561:58:13"
                }
              ]
            },
            "documentation": "@notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n @param question_id The ID of the question\n @param requester The account that requested arbitration\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 5952,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5919,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5912,
                    "src": "22242:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5920,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5918,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4827,
                  "src": "22227:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22227:27:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5922,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5912,
                    "src": "22273:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5923,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5921,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4912,
                  "src": "22263:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22263:22:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5925,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5912,
                    "src": "22329:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5926,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5916,
                    "src": "22342:12:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5927,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5924,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5047,
                  "src": "22294:34:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22294:61:13"
              }
            ],
            "name": "notifyOfArbitrationRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5917,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5912,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5952,
                  "src": "22156:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5911,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22156:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5914,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 5952,
                  "src": "22177:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5913,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22177:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5916,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5952,
                  "src": "22196:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5915,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22196:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22155:62:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5928,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22369:0:13"
            },
            "scope": 6825,
            "src": "22120:506:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6000,
              "nodeType": "Block",
              "src": "23406:316:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5968,
                          "name": "answerer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5958,
                          "src": "23425:8:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5969,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4638,
                          "src": "23437:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "23425:24:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616e737765726572206d7573742062652070726f7669646564",
                        "id": 5971,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23451:27:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        },
                        "value": "answerer must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        }
                      ],
                      "id": 5967,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "23417:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23417:62:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5973,
                  "nodeType": "ExpressionStatement",
                  "src": "23417:62:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5975,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5954,
                        "src": "23506:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5976,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5956,
                        "src": "23519:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5974,
                      "name": "LogFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4740,
                      "src": "23494:11:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23494:32:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5978,
                  "nodeType": "EmitStatement",
                  "src": "23489:37:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5979,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "23537:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5981,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5980,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5954,
                          "src": "23547:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "23537:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5982,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4760,
                      "src": "23537:45:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 5983,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "23585:5:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "23537:53:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5985,
                  "nodeType": "ExpressionStatement",
                  "src": "23537:53:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5987,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5954,
                        "src": "23620:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5988,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5956,
                        "src": "23633:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5989,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5958,
                        "src": "23641:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23651:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 5991,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23654:5:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5986,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5881,
                      "src": "23600:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23600:60:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5993,
                  "nodeType": "ExpressionStatement",
                  "src": "23600:60:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5995,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5954,
                        "src": "23691:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5996,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5956,
                        "src": "23704:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5997,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23712:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 5994,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5910,
                      "src": "23670:20:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 5998,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23670:44:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5999,
                  "nodeType": "ExpressionStatement",
                  "src": "23670:44:13"
                }
              ]
            },
            "documentation": "@notice Submit the answer for a question, for use by the arbitrator.\n @dev Doesn't require (or allow) a bond.\n If the current final answer is correct, the account should be whoever submitted it.\n If the current final answer is wrong, the account should be whoever paid for arbitration.\n However, the answerer stipulations are not enforced by the contract.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param answerer The account credited with this answer for the purpose of bond claims",
            "id": 6001,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5961,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5954,
                    "src": "23335:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5962,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5960,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4827,
                  "src": "23320:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "23320:27:13"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5964,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5954,
                    "src": "23380:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5965,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5963,
                  "name": "statePendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4926,
                  "src": "23356:23:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "23356:36:13"
              }
            ],
            "name": "submitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5959,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5954,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6001,
                  "src": "23256:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5953,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23256:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5956,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6001,
                  "src": "23277:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5955,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23277:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5958,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6001,
                  "src": "23293:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5957,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "23293:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23255:55:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 5966,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "23406:0:13"
            },
            "scope": 6825,
            "src": "23222:500:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6034,
              "nodeType": "Block",
              "src": "23974:201:13",
              "statements": [
                {
                  "assignments": [
                    6009
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6009,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 6035,
                      "src": "23984:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 6008,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "23984:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6014,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6010,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "24005:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6012,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6011,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6003,
                        "src": "24015:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24005:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6013,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4758,
                    "src": "24005:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23984:55:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6031,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 6024,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6019,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "24058:46:13",
                            "subExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6015,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4798,
                                  "src": "24059:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                  }
                                },
                                "id": 6017,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6016,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6003,
                                  "src": "24069:11:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "24059:22:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$4769_storage",
                                  "typeString": "struct RealitioERC20.Question storage ref"
                                }
                              },
                              "id": 6018,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "is_pending_arbitration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4760,
                              "src": "24059:45:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 6022,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 6020,
                                  "name": "finalize_ts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6009,
                                  "src": "24109:11:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 6021,
                                  "name": "UNANSWERED",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4646,
                                  "src": "24123:10:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "24109:24:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 6023,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "24108:26:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "24058:76:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 6029,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 6025,
                                "name": "finalize_ts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6009,
                                "src": "24139:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6027,
                                    "name": "now",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7354,
                                    "src": "24161:3:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6026,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "24154:6:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint32_$",
                                    "typeString": "type(uint32)"
                                  },
                                  "typeName": "uint32"
                                },
                                "id": 6028,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "24154:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "24139:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 6030,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "24138:28:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "24058:108:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 6032,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "24056:112:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6007,
                  "id": 6033,
                  "nodeType": "Return",
                  "src": "24049:119:13"
                }
              ]
            },
            "documentation": "@notice Report whether the answer to the specified question is finalized\n @param question_id The ID of the question\n @return Return true if finalized",
            "id": 6035,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isFinalized",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6004,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6003,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6035,
                  "src": "23921:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6002,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23921:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23920:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6007,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6006,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6035,
                  "src": "23968:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6005,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23968:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23967:6:13"
            },
            "scope": 6825,
            "src": "23900:275:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6050,
              "nodeType": "Block",
              "src": "24508:58:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6045,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "24525:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6047,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6046,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6037,
                        "src": "24535:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24525:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6048,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "24525:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6044,
                  "id": 6049,
                  "nodeType": "Return",
                  "src": "24518:41:13"
                }
              ]
            },
            "documentation": "@notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 6051,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6040,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6037,
                    "src": "24459:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6041,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6039,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4995,
                  "src": "24444:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24444:27:13"
              }
            ],
            "name": "getFinalAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6037,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6051,
                  "src": "24414:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6036,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24414:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24413:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6043,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6051,
                  "src": "24499:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6042,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24499:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24498:9:13"
            },
            "scope": 6825,
            "src": "24390:176:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6066,
              "nodeType": "Block",
              "src": "24881:58:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6061,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "24898:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6063,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6062,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6053,
                        "src": "24908:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24898:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6064,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "24898:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6060,
                  "id": 6065,
                  "nodeType": "Return",
                  "src": "24891:41:13"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 6067,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6056,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6053,
                    "src": "24832:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6057,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6055,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4995,
                  "src": "24817:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24817:27:13"
              }
            ],
            "name": "resultFor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6054,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6053,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6067,
                  "src": "24787:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6052,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24787:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24786:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6059,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6067,
                  "src": "24872:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6058,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24872:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24871:9:13"
            },
            "scope": 6825,
            "src": "24768:171:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6130,
              "nodeType": "Block",
              "src": "25917:427:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 6091,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6086,
                          "name": "content_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6071,
                          "src": "25935:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6087,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "25951:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6089,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6088,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6069,
                              "src": "25961:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "25951:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6090,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "content_hash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4750,
                          "src": "25951:35:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "25935:51:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74656e742068617368206d757374206d61746368",
                        "id": 6092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "25988:25:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        },
                        "value": "content hash must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        }
                      ],
                      "id": 6085,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "25927:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25927:87:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6094,
                  "nodeType": "ExpressionStatement",
                  "src": "25927:87:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6096,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6073,
                          "src": "26032:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6097,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "26046:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6099,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6098,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6069,
                              "src": "26056:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26046:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6100,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4752,
                          "src": "26046:33:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "26032:47:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d757374206d61746368",
                        "id": 6102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26081:23:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        },
                        "value": "arbitrator must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        }
                      ],
                      "id": 6095,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "26024:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26024:81:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6104,
                  "nodeType": "ExpressionStatement",
                  "src": "26024:81:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 6111,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6106,
                          "name": "min_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6075,
                          "src": "26123:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6107,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "26138:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6109,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6108,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6069,
                              "src": "26148:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26138:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6110,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4756,
                          "src": "26138:30:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "26123:45:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
                        "id": 6112,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26170:29:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        },
                        "value": "timeout must be long enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        }
                      ],
                      "id": 6105,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "26115:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6113,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26115:85:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6114,
                  "nodeType": "ExpressionStatement",
                  "src": "26115:85:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6116,
                          "name": "min_bond",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6077,
                          "src": "26218:8:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6117,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4798,
                              "src": "26230:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6119,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6118,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6069,
                              "src": "26240:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26230:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4769_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6120,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4768,
                          "src": "26230:27:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "26218:39:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
                        "id": 6122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26259:26:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        },
                        "value": "bond must be high enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        }
                      ],
                      "id": 6115,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "26210:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26210:76:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6124,
                  "nodeType": "ExpressionStatement",
                  "src": "26210:76:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6125,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "26303:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6127,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6126,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6069,
                        "src": "26313:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "26303:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6128,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "26303:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6084,
                  "id": 6129,
                  "nodeType": "Return",
                  "src": "26296:41:13"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, provided it matches the specified criteria.\n @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n @param question_id The ID of the question\n @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n @param min_timeout The timeout set in the initial question settings must be this high or higher\n @param min_bond The bond sent with the final answer must be this high or higher\n @return The answer formatted as a bytes32",
            "id": 6131,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6080,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6069,
                    "src": "25868:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6081,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6079,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4995,
                  "src": "25853:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "25853:27:13"
              }
            ],
            "name": "getFinalAnswerIfMatches",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6078,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6069,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25729:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6068,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25729:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6071,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25759:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6070,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25759:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6073,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25781:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6072,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "25781:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6075,
                  "name": "min_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25801:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6074,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25801:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6077,
                  "name": "min_bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25821:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6076,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "25821:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25719:124:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6084,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6083,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "25908:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6082,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25908:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25907:9:13"
            },
            "scope": 6825,
            "src": "25687:657:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6331,
              "nodeType": "Block",
              "src": "27856:2585:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6152,
                            "name": "history_hashes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6136,
                            "src": "27875:14:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 6153,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "27875:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 6154,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "27899:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "27875:25:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
                        "id": 6156,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "27902:50:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        },
                        "value": "at least one history hash entry must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        }
                      ],
                      "id": 6151,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7355,
                        7356
                      ],
                      "referencedDeclaration": 7356,
                      "src": "27867:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6157,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27867:86:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6158,
                  "nodeType": "ExpressionStatement",
                  "src": "27867:86:13"
                },
                {
                  "assignments": [
                    6160
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6160,
                      "name": "payee",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28044:13:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6159,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "28044:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6165,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6161,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4802,
                        "src": "28060:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6163,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6162,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28076:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28060:28:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4783_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6164,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "payee",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4778,
                    "src": "28060:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28044:50:13"
                },
                {
                  "assignments": [
                    6167
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6167,
                      "name": "last_bond",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28105:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6166,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28105:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6172,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6168,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4802,
                        "src": "28125:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6170,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6169,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28141:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28125:28:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4783_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6171,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "last_bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4780,
                    "src": "28125:38:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28105:58:13"
                },
                {
                  "assignments": [
                    6174
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6174,
                      "name": "queued_funds",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28174:20:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6173,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28174:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6179,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6175,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4802,
                        "src": "28197:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6177,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6176,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28213:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28197:28:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4783_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6178,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "queued_funds",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4782,
                    "src": "28197:41:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28174:64:13"
                },
                {
                  "assignments": [
                    6181
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6181,
                      "name": "last_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28459:25:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6180,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "28459:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6186,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6182,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "28487:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6184,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6183,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28497:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28487:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6185,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4766,
                    "src": "28487:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28459:63:13"
                },
                {
                  "assignments": [
                    6188
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6188,
                      "name": "best_answer",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28533:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6187,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "28533:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6193,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6189,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "28555:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6191,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6190,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "28565:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28555:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6192,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "28555:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28533:56:13"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6195,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 6332,
                      "src": "28600:9:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6194,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28600:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6196,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28600:9:13"
                },
                {
                  "body": {
                    "id": 6266,
                    "nodeType": "Block",
                    "src": "28663:702:13",
                    "statements": [
                      {
                        "assignments": [
                          6209
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6209,
                            "name": "is_commitment",
                            "nodeType": "VariableDeclaration",
                            "scope": 6332,
                            "src": "28797:18:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 6208,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "28797:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6225,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6211,
                              "name": "last_history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6181,
                              "src": "28846:17:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6212,
                                "name": "history_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6136,
                                "src": "28865:14:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 6214,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6213,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6195,
                                "src": "28880:1:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28865:17:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6215,
                                "name": "answers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6145,
                                "src": "28884:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 6217,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6216,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6195,
                                "src": "28892:1:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28884:10:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6218,
                                "name": "bonds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6142,
                                "src": "28896:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 6220,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6219,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6195,
                                "src": "28902:1:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28896:8:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6221,
                                "name": "addrs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6139,
                                "src": "28906:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 6223,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6222,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6195,
                                "src": "28912:1:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28906:8:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 6210,
                            "name": "_verifyHistoryInputOrRevert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6411,
                            "src": "28818:27:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (bytes32,bytes32,bytes32,uint256,address) pure returns (bool)"
                            }
                          },
                          "id": 6224,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "28818:97:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28797:118:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6226,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6174,
                            "src": "28942:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6229,
                                "name": "last_bond",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6167,
                                "src": "28974:9:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 6227,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6174,
                                "src": "28957:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6228,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6922,
                              "src": "28957:16:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 6230,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "28957:27:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "28942:42:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6232,
                        "nodeType": "ExpressionStatement",
                        "src": "28942:42:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6252,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 6233,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6174,
                                "src": "29000:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6234,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6160,
                                "src": "29014:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "id": 6235,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "28999:21:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6237,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "29060:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6238,
                                "name": "best_answer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6188,
                                "src": "29073:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6239,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6174,
                                "src": "29086:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6240,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6160,
                                "src": "29100:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6241,
                                  "name": "addrs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6139,
                                  "src": "29124:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 6243,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6242,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6195,
                                  "src": "29130:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29124:8:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6244,
                                  "name": "bonds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6142,
                                  "src": "29134:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                    "typeString": "uint256[] memory"
                                  }
                                },
                                "id": 6246,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6245,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6195,
                                  "src": "29140:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29134:8:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6247,
                                  "name": "answers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6145,
                                  "src": "29144:7:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                    "typeString": "bytes32[] memory"
                                  }
                                },
                                "id": 6249,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6248,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6195,
                                  "src": "29152:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29144:10:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6250,
                                "name": "is_commitment",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6209,
                                "src": "29156:13:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 6236,
                              "name": "_processHistoryItem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6538,
                              "src": "29023:19:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$_t_address_$",
                                "typeString": "function (bytes32,bytes32,uint256,address,address,uint256,bytes32,bool) returns (uint256,address)"
                              }
                            },
                            "id": 6251,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "29023:147:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "src": "28999:171:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6253,
                        "nodeType": "ExpressionStatement",
                        "src": "28999:171:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6258,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6254,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6167,
                            "src": "29282:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6255,
                              "name": "bonds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6142,
                              "src": "29294:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 6257,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6256,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6195,
                              "src": "29300:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "29294:8:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "29282:20:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6259,
                        "nodeType": "ExpressionStatement",
                        "src": "29282:20:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6264,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6260,
                            "name": "last_history_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6181,
                            "src": "29316:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6261,
                              "name": "history_hashes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6136,
                              "src": "29336:14:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            "id": 6263,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6262,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6195,
                              "src": "29351:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "29336:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "29316:37:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 6265,
                        "nodeType": "ExpressionStatement",
                        "src": "29316:37:13"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6201,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6195,
                      "src": "28631:1:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6202,
                        "name": "history_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6136,
                        "src": "28635:14:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 6203,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "28635:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "28631:25:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6267,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6199,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 6197,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6195,
                        "src": "28624:1:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6198,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "28628:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "28624:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6200,
                    "nodeType": "ExpressionStatement",
                    "src": "28624:5:13"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6206,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "28658:3:13",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6205,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6195,
                        "src": "28658:1:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6207,
                    "nodeType": "ExpressionStatement",
                    "src": "28658:3:13"
                  },
                  "nodeType": "ForStatement",
                  "src": "28619:746:13"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6268,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6181,
                      "src": "29380:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6269,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4643,
                      "src": "29401:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "29380:30:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6322,
                    "nodeType": "Block",
                    "src": "30155:213:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6309,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6133,
                              "src": "30260:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6310,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6160,
                              "src": "30273:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6313,
                                  "name": "last_bond",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6167,
                                  "src": "30297:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6311,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6174,
                                  "src": "30280:12:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6312,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6922,
                                "src": "30280:16:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 6314,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "30280:27:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6308,
                            "name": "_payPayee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6359,
                            "src": "30250:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,uint256)"
                            }
                          },
                          "id": 6315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30250:58:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6316,
                        "nodeType": "ExpressionStatement",
                        "src": "30250:58:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "30322:35:13",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6317,
                              "name": "question_claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4802,
                              "src": "30329:15:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                              }
                            },
                            "id": 6319,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6318,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6133,
                              "src": "30345:11:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "30329:28:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$4783_storage",
                              "typeString": "struct RealitioERC20.Claim storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6321,
                        "nodeType": "ExpressionStatement",
                        "src": "30322:35:13"
                      }
                    ]
                  },
                  "id": 6323,
                  "nodeType": "IfStatement",
                  "src": "29376:992:13",
                  "trueBody": {
                    "id": 6307,
                    "nodeType": "Block",
                    "src": "29412:737:13",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6273,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6271,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6160,
                            "src": "29815:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6272,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4638,
                            "src": "29824:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "29815:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 6285,
                        "nodeType": "IfStatement",
                        "src": "29811:137:13",
                        "trueBody": {
                          "id": 6284,
                          "nodeType": "Block",
                          "src": "29838:110:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6275,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6133,
                                    "src": "29866:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6276,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6160,
                                    "src": "29879:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6277,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6174,
                                    "src": "29886:12:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6274,
                                  "name": "_payPayee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6359,
                                  "src": "29856:9:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256)"
                                  }
                                },
                                "id": 6278,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29856:43:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6279,
                              "nodeType": "ExpressionStatement",
                              "src": "29856:43:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6282,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6280,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6174,
                                  "src": "29917:12:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 6281,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "29932:1:13",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "29917:16:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6283,
                              "nodeType": "ExpressionStatement",
                              "src": "29917:16:13"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6291,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6286,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4802,
                                "src": "29962:15:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6288,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6287,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "29978:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "29962:28:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4783_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6289,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "payee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4778,
                            "src": "29962:34:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6290,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6160,
                            "src": "29999:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "29962:42:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 6292,
                        "nodeType": "ExpressionStatement",
                        "src": "29962:42:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6293,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4802,
                                "src": "30018:15:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6295,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6294,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "30034:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "30018:28:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4783_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6296,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "last_bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4780,
                            "src": "30018:38:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6297,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6167,
                            "src": "30059:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "30018:50:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6299,
                        "nodeType": "ExpressionStatement",
                        "src": "30018:50:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6305,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6300,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4802,
                                "src": "30082:15:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4783_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6302,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6301,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "30098:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "30082:28:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4783_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6303,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "queued_funds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4782,
                            "src": "30082:41:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6304,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6174,
                            "src": "30126:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "30082:56:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6306,
                        "nodeType": "ExpressionStatement",
                        "src": "30082:56:13"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6329,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6324,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4798,
                          "src": "30378:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6326,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6325,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6133,
                          "src": "30388:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "30378:22:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6327,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4766,
                      "src": "30378:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6328,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6181,
                      "src": "30416:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30378:55:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 6330,
                  "nodeType": "ExpressionStatement",
                  "src": "30378:55:13"
                }
              ]
            },
            "documentation": "@notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n Caller must provide the answer history, in reverse order\n @dev Works up the chain and assign bonds to the person who gave the right answer\n If someone gave the winning answer earlier, they must get paid from the higher bond\n That means we can't pay out the bond added at n until we have looked at n-1\n The first answer is authenticated by checking against the stored history_hash.\n One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n Once we get to a null hash we'll know we're done and there are no more answers.\n Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n @param question_id The ID of the question\n @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n @param addrs Last-to-first, the address of each answerer or commitment sender\n @param bonds Last-to-first, the bond supplied with each answer or commitment\n @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal",
            "id": 6332,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6148,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6133,
                    "src": "27832:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6149,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6147,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4995,
                  "src": "27817:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "27817:27:13"
              }
            ],
            "name": "claimWinnings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6133,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27694:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6132,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27694:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6136,
                  "name": "history_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27724:24:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6134,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "27724:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6135,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27724:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6139,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27750:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6137,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "27750:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6138,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27750:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6142,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27767:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6140,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "27767:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6141,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27767:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6145,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 6332,
                  "src": "27784:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6143,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "27784:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6144,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27784:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27684:123:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6150,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27856:0:13"
            },
            "scope": 6825,
            "src": "27662:2779:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6358,
              "nodeType": "Block",
              "src": "30531:113:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6341,
                        "name": "balanceOf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 393,
                        "src": "30541:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 6343,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6342,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6336,
                        "src": "30551:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "30541:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6348,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6338,
                          "src": "30581:5:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6344,
                            "name": "balanceOf",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 393,
                            "src": "30560:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 6346,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6345,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6336,
                            "src": "30570:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "30560:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6347,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6922,
                        "src": "30560:20:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 6349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30560:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "30541:46:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6351,
                  "nodeType": "ExpressionStatement",
                  "src": "30541:46:13"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6353,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6334,
                        "src": "30611:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6354,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6336,
                        "src": "30624:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6355,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6338,
                        "src": "30631:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6352,
                      "name": "LogClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4748,
                      "src": "30602:8:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 6356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30602:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6357,
                  "nodeType": "EmitStatement",
                  "src": "30597:40:13"
                }
              ]
            },
            "documentation": null,
            "id": 6359,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_payPayee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6339,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6334,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6359,
                  "src": "30466:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6333,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30466:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6336,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 6359,
                  "src": "30487:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6335,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30487:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6338,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 6359,
                  "src": "30502:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6337,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "30502:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30465:51:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6340,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30531:0:13"
            },
            "scope": 6825,
            "src": "30447:197:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6410,
              "nodeType": "Block",
              "src": "30835:364:13",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6374,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6361,
                      "src": "30849:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6378,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6363,
                              "src": "30897:12:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6379,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6365,
                              "src": "30911:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6380,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6367,
                              "src": "30919:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6381,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6369,
                              "src": "30925:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 6382,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "30931:4:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6376,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7339,
                              "src": "30880:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 6377,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "30880:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 6383,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30880:56:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 6375,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7346,
                        "src": "30870:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 6384,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30870:67:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30849:88:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6389,
                  "nodeType": "IfStatement",
                  "src": "30845:131:13",
                  "trueBody": {
                    "id": 6388,
                    "nodeType": "Block",
                    "src": "30940:36:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 6386,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "30961:4:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 6373,
                        "id": 6387,
                        "nodeType": "Return",
                        "src": "30954:11:13"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6401,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6390,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6361,
                      "src": "30989:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6394,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6363,
                              "src": "31037:12:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6395,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6365,
                              "src": "31051:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6396,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6367,
                              "src": "31059:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6397,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6369,
                              "src": "31065:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 6398,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "31071:5:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6392,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7339,
                              "src": "31020:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 6393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "31020:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 6399,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31020:57:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 6391,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7346,
                        "src": "31010:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 6400,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "31010:68:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30989:89:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6405,
                  "nodeType": "IfStatement",
                  "src": "30985:133:13",
                  "trueBody": {
                    "id": 6404,
                    "nodeType": "Block",
                    "src": "31081:37:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 6402,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "31102:5:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 6373,
                        "id": 6403,
                        "nodeType": "Return",
                        "src": "31095:12:13"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
                        "id": 6407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31135:56:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        },
                        "value": "History input provided did not match the expected hash"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        }
                      ],
                      "id": 6406,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7357,
                        7358
                      ],
                      "referencedDeclaration": 7358,
                      "src": "31128:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 6408,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31128:64:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6409,
                  "nodeType": "ExpressionStatement",
                  "src": "31128:64:13"
                }
              ]
            },
            "documentation": null,
            "id": 6411,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_verifyHistoryInputOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6370,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6361,
                  "name": "last_history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30696:25:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6360,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30696:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6363,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30731:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6362,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30731:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6365,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30753:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6364,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30753:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6367,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30769:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6366,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "30769:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6369,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30783:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6368,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30783:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30686:115:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6372,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6411,
                  "src": "30829:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6371,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "30829:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30828:6:13"
            },
            "scope": 6825,
            "src": "30650:549:13",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6537,
              "nodeType": "Block",
              "src": "31449:2168:13",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 6434,
                    "name": "is_commitment",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6427,
                    "src": "31648:13:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6469,
                  "nodeType": "IfStatement",
                  "src": "31644:482:13",
                  "trueBody": {
                    "id": 6468,
                    "nodeType": "Block",
                    "src": "31663:463:13",
                    "statements": [
                      {
                        "assignments": [
                          6436
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6436,
                            "name": "commitment_id",
                            "nodeType": "VariableDeclaration",
                            "scope": 6538,
                            "src": "31677:21:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 6435,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "31677:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6438,
                        "initialValue": {
                          "argumentTypes": null,
                          "id": 6437,
                          "name": "answer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6425,
                          "src": "31701:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31677:30:13"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 6443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "31822:39:13",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6439,
                                "name": "commitments",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4806,
                                "src": "31823:11:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                }
                              },
                              "id": 6441,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6440,
                                "name": "commitment_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6436,
                                "src": "31835:13:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31823:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                                "typeString": "struct RealitioERC20.Commitment storage ref"
                              }
                            },
                            "id": 6442,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "is_revealed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4773,
                            "src": "31823:38:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6466,
                          "nodeType": "Block",
                          "src": "31981:135:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6459,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6454,
                                  "name": "answer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6425,
                                  "src": "31999:6:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 6455,
                                      "name": "commitments",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4806,
                                      "src": "32008:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                      }
                                    },
                                    "id": 6457,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 6456,
                                      "name": "commitment_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6436,
                                      "src": "32020:13:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "32008:26:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                                      "typeString": "struct RealitioERC20.Commitment storage ref"
                                    }
                                  },
                                  "id": 6458,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealed_answer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4775,
                                  "src": "32008:42:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "31999:51:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6460,
                              "nodeType": "ExpressionStatement",
                              "src": "31999:51:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6464,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "32068:33:13",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6461,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4806,
                                    "src": "32075:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                    }
                                  },
                                  "id": 6463,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6462,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6436,
                                    "src": "32087:13:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "32075:26:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                                    "typeString": "struct RealitioERC20.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6465,
                              "nodeType": "ExpressionStatement",
                              "src": "32068:33:13"
                            }
                          ]
                        },
                        "id": 6467,
                        "nodeType": "IfStatement",
                        "src": "31818:298:13",
                        "trueBody": {
                          "id": 6453,
                          "nodeType": "Block",
                          "src": "31863:112:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6447,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "31881:33:13",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6444,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4806,
                                    "src": "31888:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4776_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                    }
                                  },
                                  "id": 6446,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6445,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6436,
                                    "src": "31900:13:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31888:26:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$4776_storage",
                                    "typeString": "struct RealitioERC20.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6448,
                              "nodeType": "ExpressionStatement",
                              "src": "31881:33:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6449,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6417,
                                    "src": "31940:12:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6450,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6419,
                                    "src": "31954:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "id": 6451,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "31939:21:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                                  "typeString": "tuple(uint256,address)"
                                }
                              },
                              "functionReturnParameters": 6433,
                              "id": 6452,
                              "nodeType": "Return",
                              "src": "31932:28:13"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6470,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6425,
                      "src": "32140:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6471,
                      "name": "best_answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6415,
                      "src": "32150:11:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "32140:21:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6532,
                  "nodeType": "IfStatement",
                  "src": "32136:1435:13",
                  "trueBody": {
                    "id": 6531,
                    "nodeType": "Block",
                    "src": "32163:1408:13",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6473,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6419,
                            "src": "32182:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6474,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4638,
                            "src": "32191:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "32182:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 6500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6498,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6421,
                              "src": "32521:4:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 6499,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6419,
                              "src": "32529:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "32521:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 6529,
                          "nodeType": "IfStatement",
                          "src": "32517:1043:13",
                          "trueBody": {
                            "id": 6528,
                            "nodeType": "Block",
                            "src": "32536:1024:13",
                            "statements": [
                              {
                                "assignments": [
                                  6502
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 6502,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6538,
                                    "src": "33155:27:13",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 6501,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "33155:7:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 6510,
                                "initialValue": {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 6505,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 6503,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6417,
                                          "src": "33186:12:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 6504,
                                          "name": "bond",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6423,
                                          "src": "33202:4:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "33186:20:13",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 6506,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "33185:22:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "id": 6508,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6417,
                                    "src": "33217:12:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 6509,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "33185:44:13",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "id": 6507,
                                    "name": "bond",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6423,
                                    "src": "33210:4:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "33155:74:13"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6512,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6413,
                                      "src": "33322:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 6513,
                                      "name": "payee",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6419,
                                      "src": "33335:5:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6516,
                                          "name": "answer_takeover_fee",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6502,
                                          "src": "33359:19:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 6514,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6417,
                                          "src": "33342:12:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 6515,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sub",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6898,
                                        "src": "33342:16:13",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 6517,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "33342:37:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 6511,
                                    "name": "_payPayee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6359,
                                    "src": "33312:9:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256)"
                                    }
                                  },
                                  "id": 6518,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "33312:68:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 6519,
                                "nodeType": "ExpressionStatement",
                                "src": "33312:68:13"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6522,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 6520,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6419,
                                    "src": "33480:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 6521,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6421,
                                    "src": "33488:4:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "src": "33480:12:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 6523,
                                "nodeType": "ExpressionStatement",
                                "src": "33480:12:13"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6526,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 6524,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6417,
                                    "src": "33510:12:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 6525,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6502,
                                    "src": "33525:19:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "33510:34:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6527,
                                "nodeType": "ExpressionStatement",
                                "src": "33510:34:13"
                              }
                            ]
                          }
                        },
                        "id": 6530,
                        "nodeType": "IfStatement",
                        "src": "32178:1382:13",
                        "trueBody": {
                          "id": 6497,
                          "nodeType": "Block",
                          "src": "32205:306:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6478,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6476,
                                  "name": "payee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6419,
                                  "src": "32352:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 6477,
                                  "name": "addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6421,
                                  "src": "32360:4:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "32352:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6479,
                              "nodeType": "ExpressionStatement",
                              "src": "32352:12:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6488,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6480,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6417,
                                  "src": "32382:12:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 6483,
                                          "name": "questions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4798,
                                          "src": "32414:9:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                          }
                                        },
                                        "id": 6485,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 6484,
                                          "name": "question_id",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6413,
                                          "src": "32424:11:13",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "32414:22:13",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Question_$4769_storage",
                                          "typeString": "struct RealitioERC20.Question storage ref"
                                        }
                                      },
                                      "id": 6486,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "bounty",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4762,
                                      "src": "32414:29:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6481,
                                      "name": "queued_funds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6417,
                                      "src": "32397:12:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6482,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6922,
                                    "src": "32397:16:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6487,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "32397:47:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "32382:62:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6489,
                              "nodeType": "ExpressionStatement",
                              "src": "32382:62:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6495,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 6490,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4798,
                                      "src": "32462:9:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                      }
                                    },
                                    "id": 6492,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 6491,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6413,
                                      "src": "32472:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "32462:22:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$4769_storage",
                                      "typeString": "struct RealitioERC20.Question storage ref"
                                    }
                                  },
                                  "id": 6493,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "bounty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4762,
                                  "src": "32462:29:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 6494,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "32494:1:13",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "32462:33:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6496,
                              "nodeType": "ExpressionStatement",
                              "src": "32462:33:13"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "id": 6533,
                        "name": "queued_funds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6417,
                        "src": "33589:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6534,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6419,
                        "src": "33603:5:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "id": 6535,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "33588:21:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                      "typeString": "tuple(uint256,address)"
                    }
                  },
                  "functionReturnParameters": 6433,
                  "id": 6536,
                  "nodeType": "Return",
                  "src": "33581:28:13"
                }
              ]
            },
            "documentation": null,
            "id": 6538,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_processHistoryItem",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6413,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31243:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6412,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31243:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6415,
                  "name": "best_answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31264:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6414,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31264:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6417,
                  "name": "queued_funds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31294:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6416,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31294:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6419,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31316:13:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6418,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31316:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6421,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31340:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6420,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31340:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6423,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31354:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6422,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31354:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6425,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31368:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6424,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31368:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6427,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31384:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6426,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "31384:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31233:175:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6433,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6430,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31431:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6429,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31431:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6432,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6538,
                  "src": "31440:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6431,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31440:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31430:18:13"
            },
            "scope": 6825,
            "src": "31205:2412:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6693,
              "nodeType": "Block",
              "src": "34842:723:13",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6562,
                      "name": "qi",
                      "nodeType": "VariableDeclaration",
                      "scope": 6694,
                      "src": "34861:10:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6561,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "34861:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6563,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34861:10:13"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6565,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 6694,
                      "src": "34881:9:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6564,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "34881:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6566,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34881:9:13"
                },
                {
                  "body": {
                    "id": 6688,
                    "nodeType": "Block",
                    "src": "34945:594:13",
                    "statements": [
                      {
                        "assignments": [
                          6579
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6579,
                            "name": "qid",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "34959:11:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 6578,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "34959:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6583,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6580,
                            "name": "question_ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6541,
                            "src": "34973:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 6582,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6581,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6562,
                            "src": "34986:2:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "34973:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "34959:30:13"
                      },
                      {
                        "assignments": [
                          6585
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6585,
                            "name": "ln",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35003:10:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6584,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "35003:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6589,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6586,
                            "name": "lengths",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6544,
                            "src": "35016:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "id": 6588,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6587,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6562,
                            "src": "35024:2:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "35016:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35003:24:13"
                      },
                      {
                        "assignments": [
                          6593
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6593,
                            "name": "hh",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35041:19:13",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6591,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35041:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6592,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35041:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6599,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6597,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6585,
                              "src": "35077:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6596,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35063:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6594,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35067:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6595,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35067:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 6598,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35063:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35041:39:13"
                      },
                      {
                        "assignments": [
                          6603
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6603,
                            "name": "ad",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35094:19:13",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6601,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "35094:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6602,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35094:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6609,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6607,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6585,
                              "src": "35130:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6606,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35116:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6604,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "35120:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6605,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35120:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 6608,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35116:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory",
                            "typeString": "address[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35094:39:13"
                      },
                      {
                        "assignments": [
                          6613
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6613,
                            "name": "bo",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35147:19:13",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6611,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "35147:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6612,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35147:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6619,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6617,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6585,
                              "src": "35183:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6616,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35169:13:13",
                            "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": 6614,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "35173:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6615,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35173:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            }
                          },
                          "id": 6618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35169:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35147:39:13"
                      },
                      {
                        "assignments": [
                          6623
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6623,
                            "name": "an",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35200:19:13",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6621,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35200:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6622,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35200:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6629,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6627,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6585,
                              "src": "35236:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6626,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35222:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6624,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35226:7:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6625,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35226:9:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 6628,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35222:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35200:39:13"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6631,
                            "name": "j",
                            "nodeType": "VariableDeclaration",
                            "scope": 6694,
                            "src": "35253:9:13",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6630,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "35253:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6632,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35253:9:13"
                      },
                      {
                        "body": {
                          "id": 6678,
                          "nodeType": "Block",
                          "src": "35301:180:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6649,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6643,
                                    "name": "hh",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6593,
                                    "src": "35319:2:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6645,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6644,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6631,
                                    "src": "35322:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35319:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6646,
                                    "name": "hist_hashes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6547,
                                    "src": "35327:11:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6648,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6647,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6565,
                                    "src": "35339:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35327:14:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "35319:22:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6650,
                              "nodeType": "ExpressionStatement",
                              "src": "35319:22:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6657,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6651,
                                    "name": "ad",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6603,
                                    "src": "35359:2:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 6653,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6652,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6631,
                                    "src": "35362:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35359:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6654,
                                    "name": "addrs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6550,
                                    "src": "35367:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 6656,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6655,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6565,
                                    "src": "35373:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35367:8:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "35359:16:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6658,
                              "nodeType": "ExpressionStatement",
                              "src": "35359:16:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6665,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6659,
                                    "name": "bo",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6613,
                                    "src": "35393:2:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 6661,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6660,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6631,
                                    "src": "35396:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35393:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6662,
                                    "name": "bonds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6553,
                                    "src": "35401:5:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 6664,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6663,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6565,
                                    "src": "35407:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35401:8:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "35393:16:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6666,
                              "nodeType": "ExpressionStatement",
                              "src": "35393:16:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6673,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6667,
                                    "name": "an",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6623,
                                    "src": "35427:2:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6669,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6668,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6631,
                                    "src": "35430:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35427:5:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6670,
                                    "name": "answers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6556,
                                    "src": "35435:7:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6672,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6671,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6565,
                                    "src": "35443:1:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35435:10:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "35427:18:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6674,
                              "nodeType": "ExpressionStatement",
                              "src": "35427:18:13"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6676,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "35463:3:13",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 6675,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6565,
                                  "src": "35463:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6677,
                              "nodeType": "ExpressionStatement",
                              "src": "35463:3:13"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6639,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6637,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6631,
                            "src": "35288:1:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6638,
                            "name": "ln",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6585,
                            "src": "35292:2:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "35288:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6679,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 6635,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 6633,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6631,
                              "src": "35281:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 6634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "35285:1:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "35281:5:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6636,
                          "nodeType": "ExpressionStatement",
                          "src": "35281:5:13"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 6641,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "35296:3:13",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 6640,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6631,
                              "src": "35296:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6642,
                          "nodeType": "ExpressionStatement",
                          "src": "35296:3:13"
                        },
                        "nodeType": "ForStatement",
                        "src": "35276:205:13"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6681,
                              "name": "qid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6579,
                              "src": "35508:3:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6682,
                              "name": "hh",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6593,
                              "src": "35513:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6683,
                              "name": "ad",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6603,
                              "src": "35517:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6684,
                              "name": "bo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6613,
                              "src": "35521:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6685,
                              "name": "an",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6623,
                              "src": "35525:2:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            ],
                            "id": 6680,
                            "name": "claimWinnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6332,
                            "src": "35494:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (bytes32,bytes32[] memory,address[] memory,uint256[] memory,bytes32[] memory)"
                            }
                          },
                          "id": 6686,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35494:34:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6687,
                        "nodeType": "ExpressionStatement",
                        "src": "35494:34:13"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6571,
                      "name": "qi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6562,
                      "src": "34913:2:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6572,
                        "name": "question_ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6541,
                        "src": "34918:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 6573,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "34918:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "34913:24:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6689,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6569,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 6567,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6562,
                        "src": "34905:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "34910:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "34905:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6570,
                    "nodeType": "ExpressionStatement",
                    "src": "34905:6:13"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6576,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "34939:4:13",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6575,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6562,
                        "src": "34939:2:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6577,
                    "nodeType": "ExpressionStatement",
                    "src": "34939:4:13"
                  },
                  "nodeType": "ForStatement",
                  "src": "34900:639:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6690,
                      "name": "withdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 432,
                      "src": "35548:8:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 6691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "35548:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6692,
                  "nodeType": "ExpressionStatement",
                  "src": "35548:10:13"
                }
              ]
            },
            "documentation": "@notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n Caller must provide the answer history for each question, in reverse order\n @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n @param question_ids The IDs of the questions you want to claim for\n @param lengths The number of history entries you will supply for each question ID\n @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n @param answers In a single list for all supplied questions, each answer supplied, or commitment ID ",
            "id": 6694,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 6559,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6558,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4831,
                  "src": "34754:8:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "34754:10:13"
              }
            ],
            "name": "claimMultipleAndWithdrawBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6557,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6541,
                  "name": "question_ids",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34612:22:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6539,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34612:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6540,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34612:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6544,
                  "name": "lengths",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34636:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6542,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "34636:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6543,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34636:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6547,
                  "name": "hist_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34664:21:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6545,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34664:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6546,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34664:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6550,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34687:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6548,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "34687:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6549,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34687:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6553,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34704:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6551,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "34704:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6552,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34704:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6556,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 6694,
                  "src": "34721:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6554,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34721:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6555,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34721:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34602:142:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6560,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "34842:0:13"
            },
            "scope": 6825,
            "src": "34562:1003:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6706,
              "nodeType": "Block",
              "src": "35788:59:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6701,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "35805:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6703,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6702,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6696,
                        "src": "35815:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "35805:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6704,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "content_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4750,
                    "src": "35805:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6700,
                  "id": 6705,
                  "nodeType": "Return",
                  "src": "35798:42:13"
                }
              ]
            },
            "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
            "id": 6707,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getContentHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6697,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6696,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6707,
                  "src": "35733:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6695,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35733:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35732:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6700,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6699,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6707,
                  "src": "35779:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6698,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35779:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35778:9:13"
            },
            "scope": 6825,
            "src": "35709:138:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6719,
              "nodeType": "Block",
              "src": "36046:57:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6714,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "36063:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6716,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6715,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6709,
                        "src": "36073:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36063:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6717,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "arbitrator",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4752,
                    "src": "36063:33:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 6713,
                  "id": 6718,
                  "nodeType": "Return",
                  "src": "36056:40:13"
                }
              ]
            },
            "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
            "id": 6720,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6709,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6720,
                  "src": "35991:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6708,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35991:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35990:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6712,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6720,
                  "src": "36037:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6711,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "36037:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36036:9:13"
            },
            "scope": 6825,
            "src": "35968:135:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6732,
              "nodeType": "Block",
              "src": "36314:57:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6727,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "36331:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6729,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6728,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6722,
                        "src": "36341:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36331:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6730,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4754,
                    "src": "36331:33:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6726,
                  "id": 6731,
                  "nodeType": "Return",
                  "src": "36324:40:13"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
            "id": 6733,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOpeningTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6723,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6722,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "36260:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6721,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36260:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36259:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6726,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6725,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "36306:6:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6724,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36306:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36305:8:13"
            },
            "scope": 6825,
            "src": "36238:133:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6745,
              "nodeType": "Block",
              "src": "36572:54:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6740,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "36589:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6742,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6741,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6735,
                        "src": "36599:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36589:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6743,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "timeout",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4756,
                    "src": "36589:30:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6739,
                  "id": 6744,
                  "nodeType": "Return",
                  "src": "36582:37:13"
                }
              ]
            },
            "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
            "id": 6746,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTimeout",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6736,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6735,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6746,
                  "src": "36518:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6734,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36518:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36517:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6739,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6738,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6746,
                  "src": "36564:6:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6737,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36564:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36563:8:13"
            },
            "scope": 6825,
            "src": "36498:128:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6758,
              "nodeType": "Block",
              "src": "36842:58:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6753,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "36859:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6755,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6754,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6748,
                        "src": "36869:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36859:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6756,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4758,
                    "src": "36859:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6752,
                  "id": 6757,
                  "nodeType": "Return",
                  "src": "36852:41:13"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
            "id": 6759,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFinalizeTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6748,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6759,
                  "src": "36788:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36788:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36787:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6752,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6751,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6759,
                  "src": "36834:6:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6750,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36834:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36833:8:13"
            },
            "scope": 6825,
            "src": "36765:135:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6771,
              "nodeType": "Block",
              "src": "37107:69:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6766,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "37124:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6768,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6767,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6761,
                        "src": "37134:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37124:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6769,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "is_pending_arbitration",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4760,
                    "src": "37124:45:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6765,
                  "id": 6770,
                  "nodeType": "Return",
                  "src": "37117:52:13"
                }
              ]
            },
            "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
            "id": 6772,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isPendingArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6761,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6772,
                  "src": "37055:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6760,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37055:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37054:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6765,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6764,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6772,
                  "src": "37101:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6763,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "37101:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37100:6:13"
            },
            "scope": 6825,
            "src": "37025:151:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6784,
              "nodeType": "Block",
              "src": "37429:53:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6779,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "37446:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6781,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6780,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6774,
                        "src": "37456:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37446:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6782,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bounty",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4762,
                    "src": "37446:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6778,
                  "id": 6783,
                  "nodeType": "Return",
                  "src": "37439:36:13"
                }
              ]
            },
            "documentation": "@notice Returns the current total unclaimed bounty\n @dev Set back to zero once the bounty has been claimed\n @param question_id The ID of the question ",
            "id": 6785,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBounty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6774,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6785,
                  "src": "37374:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6773,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37374:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37373:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6778,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6777,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6785,
                  "src": "37420:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6776,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37420:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37419:9:13"
            },
            "scope": 6825,
            "src": "37355:127:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6797,
              "nodeType": "Block",
              "src": "37665:58:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6792,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "37682:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6794,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6793,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6787,
                        "src": "37692:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37682:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6795,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4764,
                    "src": "37682:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6791,
                  "id": 6796,
                  "nodeType": "Return",
                  "src": "37675:41:13"
                }
              ]
            },
            "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
            "id": 6798,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBestAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6788,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6787,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6798,
                  "src": "37610:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6786,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37610:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37609:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6790,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6798,
                  "src": "37656:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6789,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37656:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37655:9:13"
            },
            "scope": 6825,
            "src": "37587:136:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6810,
              "nodeType": "Block",
              "src": "37986:59:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6805,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "38003:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6807,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6806,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6800,
                        "src": "38013:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "38003:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6808,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4766,
                    "src": "38003:35:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6804,
                  "id": 6809,
                  "nodeType": "Return",
                  "src": "37996:42:13"
                }
              ]
            },
            "documentation": "@notice Returns the history hash of the question \n @param question_id The ID of the question \n @dev Updated on each answer, then rewound as each is claimed",
            "id": 6811,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHistoryHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6801,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6800,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6811,
                  "src": "37931:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6799,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37931:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37930:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6804,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6803,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6811,
                  "src": "37977:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6802,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37977:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37976:9:13"
            },
            "scope": 6825,
            "src": "37907:138:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6823,
              "nodeType": "Block",
              "src": "38244:51:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6818,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4798,
                        "src": "38261:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4769_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6820,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6819,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6813,
                        "src": "38271:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "38261:22:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4769_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6821,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4768,
                    "src": "38261:27:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6817,
                  "id": 6822,
                  "nodeType": "Return",
                  "src": "38254:34:13"
                }
              ]
            },
            "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
            "id": 6824,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBond",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6813,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6824,
                  "src": "38189:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6812,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "38189:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "38188:21:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 6817,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6816,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6824,
                  "src": "38235:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6815,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "38235:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "38234:9:13"
            },
            "scope": 6825,
            "src": "38172:123:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 6826,
        "src": "133:38165:13"
      }
    ],
    "src": "0:38299:13"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.2",
  "updatedAt": "2019-06-29T04:52:28.442Z"
}