{
  "contractName": "TimeBasedTerms",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "betRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x1ff677bf"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x3f4ba83a"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x5c975abb"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x715018a6"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x8456cb59"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x8da5cb5b"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betRegistry",
          "type": "address"
        }
      ],
      "name": "setBetRegistry",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xefdb2b46"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xf2fde38b"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Pause",
      "type": "event",
      "signature": "0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unpause",
      "type": "event",
      "signature": "0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event",
      "signature": "0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event",
      "signature": "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        },
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "changePeriod",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x51e069e7"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_terms",
          "type": "bytes32[]"
        }
      ],
      "name": "getTermsHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x9a402f40"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_terms",
          "type": "bytes32[]"
        }
      ],
      "name": "setTermsHash",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x4389a94e"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_termsHash",
          "type": "bytes32"
        }
      ],
      "name": "participationPeriod",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x7f37aa97"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_termsHash",
          "type": "bytes32"
        }
      ],
      "name": "waitingPeriod",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x28ad26e6"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_termsHash",
          "type": "bytes32"
        }
      ],
      "name": "retrievingPeriod",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xe2af856b"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_termsHash",
          "type": "bytes32"
        }
      ],
      "name": "finishedPeriod",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x65758e6c"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_number",
          "type": "uint256"
        }
      ],
      "name": "uintToBytes32",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function",
      "signature": "0x886d3db9"
    }
  ],
  "bytecode": "0x608060405260008060146101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fb98061006d6000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631ff677bf146100eb57806328ad26e6146101425780633f4ba83a1461018b5780634389a94e146101a257806351e069e7146102205780635c975abb1461025b57806365758e6c1461028a578063715018a6146102d35780637f37aa97146102ea5780638456cb5914610333578063886d3db91461034a5780638da5cb5b146103935780639a402f40146103ea578063e2af856b1461046c578063efdb2b46146104b5578063f2fde38b146104f8575b600080fd5b3480156100f757600080fd5b5061010061053b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014e57600080fd5b506101716004803603810190808035600019169060200190929190505050610565565b604051808215151515815260200191505060405180910390f35b34801561019757600080fd5b506101a06105b8565b005b3480156101ae57600080fd5b5061020660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610676565b604051808215151515815260200191505060405180910390f35b34801561022c57600080fd5b50610259600480360381019080803560001916906020019092919080359060200190929190505050610922565b005b34801561026757600080fd5b506102706109b6565b604051808215151515815260200191505060405180910390f35b34801561029657600080fd5b506102b960048036038101908080356000191690602001909291905050506109c9565b604051808215151515815260200191505060405180910390f35b3480156102df57600080fd5b506102e86109f3565b005b3480156102f657600080fd5b506103196004803603810190808035600019169060200190929190505050610af5565b604051808215151515815260200191505060405180910390f35b34801561033f57600080fd5b50610348610b1f565b005b34801561035657600080fd5b5061037560048036038101908080359060200190929190505050610bdf565b60405180826000191660001916815260200191505060405180910390f35b34801561039f57600080fd5b506103a8610bf1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f657600080fd5b5061044e60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c16565b60405180826000191660001916815260200191505060405180910390f35b34801561047857600080fd5b5061049b6004803603810190808035600019169060200190929190505050610d15565b604051808215151515815260200191505060405180910390f35b3480156104c157600080fd5b506104f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d68565b005b34801561050457600080fd5b50610539600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2c565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600042600260008460001916600019168152602001908152602001600020600001541080156105b157504260026000846000191660001916815260200190815260200160002060010154115b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561061357600080fd5b600060149054906101000a900460ff16151561062e57600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600080600080600085600081518110151561068d57fe5b906020019060200201516001900493508560018151811015156106ac57fe5b906020019060200201516001900492508560028151811015156106cb57fe5b906020019060200201516001900491504284111515610778576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f50617274696369706174696f6e20706572696f64206d75737420626520756e7481526020017f696c2066757475726520646561646c696e65000000000000000000000000000081525060400191505060405180910390fd5b8383111515610815576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f57616974696e6720706572696f64206d75737420656e6420616674657220706181526020017f7274696369706174696f6e20706572696f64000000000000000000000000000081525060400191505060405180910390fd5b82821115156108b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f52657472696576696e6720706572696f64206d75737420656e6420616674657281526020017f2077616974696e6720706572696f64000000000000000000000000000000000081525060400191505060405180910390fd5b6108bb86610c16565b9050606060405190810160405280858152602001848152602001838152506002600083600019166000191681526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506001945050505050919050565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f54686973207465726d7320636f6e747261637420646f65736e2774207375707081526020017f6f72742074686973206f7065726174696f6e000000000000000000000000000081525060400191505060405180910390fd5b600060149054906101000a900460ff1681565b60004260026000846000191660001916815260200190815260200160002060010154109050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a4e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60004260026000846000191660001916815260200190815260200160002060000154119050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7a57600080fd5b600060149054906101000a900460ff16151515610b9657600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008082600102905080915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080846000815181101515610c2b57fe5b90602001906020020151600190049250846001815181101515610c4a57fe5b90602001906020020151600190049150846002815181101515610c6957fe5b906020019060200201516001900490508282826040516020018084815260200183815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083101515610cde5780518252602082019150602081019050602083039250610cb9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350505050919050565b60004260026000846000191660001916815260200190815260200160002060010154108015610d6157504260026000846000191660001916815260200190815260200160002060020154115b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dc357600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060001515600060149054906101000a900460ff1615151415610e2957610e28610b1f565b5b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e8757600080fd5b610e9081610e93565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ecf57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820a32c67f3e9cadc2755afe7882f21d8feffe2ae83f7bf5b3e38b677b9a204e42d0029",
  "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631ff677bf146100eb57806328ad26e6146101425780633f4ba83a1461018b5780634389a94e146101a257806351e069e7146102205780635c975abb1461025b57806365758e6c1461028a578063715018a6146102d35780637f37aa97146102ea5780638456cb5914610333578063886d3db91461034a5780638da5cb5b146103935780639a402f40146103ea578063e2af856b1461046c578063efdb2b46146104b5578063f2fde38b146104f8575b600080fd5b3480156100f757600080fd5b5061010061053b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014e57600080fd5b506101716004803603810190808035600019169060200190929190505050610565565b604051808215151515815260200191505060405180910390f35b34801561019757600080fd5b506101a06105b8565b005b3480156101ae57600080fd5b5061020660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610676565b604051808215151515815260200191505060405180910390f35b34801561022c57600080fd5b50610259600480360381019080803560001916906020019092919080359060200190929190505050610922565b005b34801561026757600080fd5b506102706109b6565b604051808215151515815260200191505060405180910390f35b34801561029657600080fd5b506102b960048036038101908080356000191690602001909291905050506109c9565b604051808215151515815260200191505060405180910390f35b3480156102df57600080fd5b506102e86109f3565b005b3480156102f657600080fd5b506103196004803603810190808035600019169060200190929190505050610af5565b604051808215151515815260200191505060405180910390f35b34801561033f57600080fd5b50610348610b1f565b005b34801561035657600080fd5b5061037560048036038101908080359060200190929190505050610bdf565b60405180826000191660001916815260200191505060405180910390f35b34801561039f57600080fd5b506103a8610bf1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f657600080fd5b5061044e60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c16565b60405180826000191660001916815260200191505060405180910390f35b34801561047857600080fd5b5061049b6004803603810190808035600019169060200190929190505050610d15565b604051808215151515815260200191505060405180910390f35b3480156104c157600080fd5b506104f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d68565b005b34801561050457600080fd5b50610539600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2c565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600042600260008460001916600019168152602001908152602001600020600001541080156105b157504260026000846000191660001916815260200190815260200160002060010154115b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561061357600080fd5b600060149054906101000a900460ff16151561062e57600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600080600080600085600081518110151561068d57fe5b906020019060200201516001900493508560018151811015156106ac57fe5b906020019060200201516001900492508560028151811015156106cb57fe5b906020019060200201516001900491504284111515610778576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f50617274696369706174696f6e20706572696f64206d75737420626520756e7481526020017f696c2066757475726520646561646c696e65000000000000000000000000000081525060400191505060405180910390fd5b8383111515610815576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f57616974696e6720706572696f64206d75737420656e6420616674657220706181526020017f7274696369706174696f6e20706572696f64000000000000000000000000000081525060400191505060405180910390fd5b82821115156108b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f52657472696576696e6720706572696f64206d75737420656e6420616674657281526020017f2077616974696e6720706572696f64000000000000000000000000000000000081525060400191505060405180910390fd5b6108bb86610c16565b9050606060405190810160405280858152602001848152602001838152506002600083600019166000191681526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506001945050505050919050565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f54686973207465726d7320636f6e747261637420646f65736e2774207375707081526020017f6f72742074686973206f7065726174696f6e000000000000000000000000000081525060400191505060405180910390fd5b600060149054906101000a900460ff1681565b60004260026000846000191660001916815260200190815260200160002060010154109050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a4e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60004260026000846000191660001916815260200190815260200160002060000154119050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7a57600080fd5b600060149054906101000a900460ff16151515610b9657600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008082600102905080915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080846000815181101515610c2b57fe5b90602001906020020151600190049250846001815181101515610c4a57fe5b90602001906020020151600190049150846002815181101515610c6957fe5b906020019060200201516001900490508282826040516020018084815260200183815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083101515610cde5780518252602082019150602081019050602083039250610cb9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350505050919050565b60004260026000846000191660001916815260200190815260200160002060010154108015610d6157504260026000846000191660001916815260200190815260200160002060020154115b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dc357600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060001515600060149054906101000a900460ff1615151415610e2957610e28610b1f565b5b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e8757600080fd5b610e9081610e93565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ecf57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820a32c67f3e9cadc2755afe7882f21d8feffe2ae83f7bf5b3e38b677b9a204e42d0029",
  "sourceMap": "350:3470:13:-;;;268:5:28;247:26;;;;;;;;;;;;;;;;;;;;575:10:30;567:5;;:18;;;;;;;;;;;;;;;;;;350:3470:13;;;;;;",
  "deployedSourceMap": "350:3470:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;946:126:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;946:126:23;;;;;;;;;;;;;;;;;;;;;;;;;;;2638:247:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2638:247:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;838:92:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:92:28;;;;;;1297:773:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1297:773:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:127:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:26:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:28;;;;;;;;;;;;;;;;;;;;;;;;;;;3482:197:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3482:197:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:30;;;;;;2254:208:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2254:208:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:90:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:90:28;;;;;;3685:133:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3685:133:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:30;;;;;;;;;;;;;;;;;;;;;;;;;;;861:430:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;861:430:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3073:247;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3073:247:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;627:202:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;627:202:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;946:126:23;1015:7;1053:11;;;;;;;;;;;1038:27;;946:126;:::o;2638:247:13:-;2701:4;2830:3;2786:9;:21;2796:10;2786:21;;;;;;;;;;;;;;;;;:41;;;:47;:92;;;;;2875:3;2837:9;:21;2847:10;2837:21;;;;;;;;;;;;;;;;;:35;;;:41;2786:92;2779:99;;2638:247;;;:::o;838:92:28:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;568:6:28;;;;;;;;;;;560:15;;;;;;;;900:5;891:6;;:14;;;;;;;;;;;;;;;;;;916:9;;;;;;;;;;838:92::o;1297:773:13:-;1352:4;1368:28;1427:22;1480:25;1913:12;1407:6;1414:1;1407:9;;;;;;;;;;;;;;;;;;1399:18;;;1368:49;;1460:6;1467:1;1460:9;;;;;;;;;;;;;;;;;;1452:18;;;1427:43;;1516:6;1523:1;1516:9;;;;;;;;;;;;;;;;;;1508:18;;;1480:46;;1630:3;1607:20;:26;1599:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1723:20;1706:14;:37;1698:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:14;1816:17;:34;1808:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1928:20;1941:6;1928:12;:20::i;:::-;1913:35;;1976:65;;;;;;;;;1985:20;1976:65;;;;2007:14;1976:65;;;;2023:17;1976:65;;;1958:9;:15;1968:4;1958:15;;;;;;;;;;;;;;;;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;2059:4;2052:11;;1297:773;;;;;;;:::o;608:127::-;668:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:26:28;;;;;;;;;;;;;:::o;3482:197:13:-;3546:4;3669:3;3631:9;:21;3641:10;3631:21;;;;;;;;;;;;;;;;;:35;;;:41;3624:48;;3482:197;;;:::o;827:111:30:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;2254:208:13:-;2323:4;2452:3;2408:9;:21;2418:10;2408:21;;;;;;;;;;;;;;;;;:41;;;:47;2401:54;;2254:208;;;:::o;666:90:28:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;416:6:28;;;;;;;;;;;415:7;407:16;;;;;;;;729:4;720:6;;:13;;;;;;;;;;;;;;;;;;744:7;;;;;;;;;;666:90::o;3685:133:13:-;3743:7;3762:10;3783:7;3775:16;;3762:29;;3809:2;3802:9;;3685:133;;;;:::o;238:20:30:-;;;;;;;;;;;;;:::o;861:430:13:-;921:7;940:28;999:22;1052:25;979:6;986:1;979:9;;;;;;;;;;;;;;;;;;971:18;;;940:49;;1032:6;1039:1;1032:9;;;;;;;;;;;;;;;;;;1024:18;;;999:43;;1088:6;1095:1;1088:9;;;;;;;;;;;;;;;;;;1080:18;;;1052:46;;1173:20;1211:14;1243:17;1139:135;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1139:135:13;;;1116:168;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;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;;;1116:168:13;;;;;;;;;;;;;;;;1109:175;;861:430;;;;;;:::o;3073:247::-;3139:4;3262:3;3224:9;:21;3234:10;3224:21;;;;;;;;;;;;;;;;;:35;;;:41;:89;;;;;3310:3;3269:9;:21;3279:10;3269:21;;;;;;;;;;;;;;;;;:38;;;:44;3224:89;3217:96;;3073:247;;;:::o;627:202:23:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;747:12:23;721:11;;:39;;;;;;;;;;;;;;;;;;784:5;774:15;;:6;;;;;;;;;;;:15;;;770:53;;;805:7;:5;:7::i;:::-;770:53;627:202;:::o;1100:103:30:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o",
  "source": "pragma solidity ^0.4.24;\n\n// Internal\nimport \"../RegistrySetter.sol\";\nimport \"../ProxyInterfaces/BetTermsProxyInterface.sol\";\n\n\n/**\n * An example of the BetTerms contract for time based terms events.\n * Times for each phase of the bet are predefined by the terms.\n *\n * Author: Ben Kaufman -- Github: ben-kaufman\n */\n/** @title Owner Based Terms. */\ncontract TimeBasedTerms is RegistrySetter, BetTermsProxyInterface {\n\n    struct BetTerms {\n        uint256 participationPeriod;\n        uint256 waitingPeriod;\n        uint256 retrievingPeriod;\n    }\n\n    mapping(bytes32 => BetTerms) internal betsTerms;\n\n    function changePeriod(bytes32, uint)\n    external {\n        revert(\"This terms contract doesn't support this operation\");\n    }\n\n    /**\n     * @dev Function that returns a terms hash for the next event\n     * @return bytes32 the terms hash\n     */\n    function getTermsHash(bytes32[] _terms) public view returns(bytes32) {\n        uint256 _participationPeriod = uint256(_terms[0]);\n        uint256 _waitingPeriod = uint256(_terms[1]);\n        uint256 _retrievingPeriod = uint256(_terms[2]);\n\n        return keccak256(\n            abi.encodePacked(\n                _participationPeriod,\n                _waitingPeriod,\n                _retrievingPeriod\n            )\n        );\n    }\n\n    function setTermsHash(bytes32[] _terms) public returns(bool) {\n        uint256 _participationPeriod = uint256(_terms[0]);\n        uint256 _waitingPeriod = uint256(_terms[1]);\n        uint256 _retrievingPeriod = uint256(_terms[2]);\n\n        // solium-disable-next-line security/no-block-members\n        require(_participationPeriod > now, \"Participation period must be until future deadline\");\n        require(_waitingPeriod > _participationPeriod, \"Waiting period must end after participation period\");\n        require(_retrievingPeriod > _waitingPeriod, \"Retrieving period must end after waiting period\");\n\n        bytes32 hash = getTermsHash(_terms);\n        betsTerms[hash] = BetTerms(_participationPeriod, _waitingPeriod, _retrievingPeriod);\n\n        return true;\n    }\n\n    /**\n     * @dev Function that tells if it is the period for playing\n     * @param _termsHash bytes32 of the event\n     * @return bool if it is the period for playing\n     */\n    function participationPeriod(bytes32 _termsHash) public view returns(bool) {\n        // solium-disable-next-line security/no-block-members\n        return betsTerms[_termsHash].participationPeriod > now;\n    }\n\n    /**\n     * @dev Function that tells if the event is in stand by\n     * @param _termsHash bytes32 of the event\n     * @return bool if it is the waiting period\n     */\n    function waitingPeriod(bytes32 _termsHash) public view returns(bool) {\n        // solium-disable-next-line security/no-block-members\n        return betsTerms[_termsHash].participationPeriod < now && betsTerms[_termsHash].waitingPeriod > now;\n    }\n\n    /**\n     * @dev Function that tells if the period for playing is over\n     * @param _termsHash bytes32 of the event\n     * @return bool if the period for betting is over\n     */\n    function retrievingPeriod(bytes32 _termsHash) public view returns(bool) {\n        // solium-disable-next-line security/no-block-members\n        return betsTerms[_termsHash].waitingPeriod < now && betsTerms[_termsHash].retrievingPeriod > now;\n    }\n\n    /**\n     * @dev Function that tells if the event is over\n     * @param _termsHash bytes32 of the event\n     * @return bool if the event is over\n     */\n    function finishedPeriod(bytes32 _termsHash) public view returns(bool) {\n        // solium-disable-next-line security/no-block-members\n        return betsTerms[_termsHash].waitingPeriod < now;\n    }\n\n    function uintToBytes32(uint _number) public pure returns (bytes32) {\n        bytes32 _b = bytes32(_number);\n\n        return _b;\n    }\n}\n",
  "sourcePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/BetTermsExamples/TimeBasedTerms.sol",
  "ast": {
    "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/BetTermsExamples/TimeBasedTerms.sol",
    "exportedSymbols": {
      "TimeBasedTerms": [
        3161
      ]
    },
    "id": 3162,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2927,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:13"
      },
      {
        "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/RegistrySetter.sol",
        "file": "../RegistrySetter.sol",
        "id": 2928,
        "nodeType": "ImportDirective",
        "scope": 3162,
        "sourceUnit": 3710,
        "src": "38:31:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/ProxyInterfaces/BetTermsProxyInterface.sol",
        "file": "../ProxyInterfaces/BetTermsProxyInterface.sol",
        "id": 2929,
        "nodeType": "ImportDirective",
        "scope": 3162,
        "sourceUnit": 3543,
        "src": "70:55:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2930,
              "name": "RegistrySetter",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3709,
              "src": "377:14:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RegistrySetter_$3709",
                "typeString": "contract RegistrySetter"
              }
            },
            "id": 2931,
            "nodeType": "InheritanceSpecifier",
            "src": "377:14:13"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2932,
              "name": "BetTermsProxyInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3542,
              "src": "393:22:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BetTermsProxyInterface_$3542",
                "typeString": "contract BetTermsProxyInterface"
              }
            },
            "id": 2933,
            "nodeType": "InheritanceSpecifier",
            "src": "393:22:13"
          }
        ],
        "contractDependencies": [
          3542,
          3709,
          4173,
          4353
        ],
        "contractKind": "contract",
        "documentation": "@title Owner Based Terms. ",
        "fullyImplemented": true,
        "id": 3161,
        "linearizedBaseContracts": [
          3161,
          3542,
          3709,
          4173,
          4353
        ],
        "name": "TimeBasedTerms",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "TimeBasedTerms.BetTerms",
            "id": 2940,
            "members": [
              {
                "constant": false,
                "id": 2935,
                "name": "participationPeriod",
                "nodeType": "VariableDeclaration",
                "scope": 2940,
                "src": "449:27:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2934,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "449:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2937,
                "name": "waitingPeriod",
                "nodeType": "VariableDeclaration",
                "scope": 2940,
                "src": "486:21:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2936,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "486:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2939,
                "name": "retrievingPeriod",
                "nodeType": "VariableDeclaration",
                "scope": 2940,
                "src": "517:24:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2938,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "517:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "BetTerms",
            "nodeType": "StructDefinition",
            "scope": 3161,
            "src": "423:125:13",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2944,
            "name": "betsTerms",
            "nodeType": "VariableDeclaration",
            "scope": 3161,
            "src": "554:47:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms)"
            },
            "typeName": {
              "id": 2943,
              "keyType": {
                "id": 2941,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "562:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "554:28:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2942,
                "name": "BetTerms",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2940,
                "src": "573:8:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_BetTerms_$2940_storage_ptr",
                  "typeString": "struct TimeBasedTerms.BetTerms"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2955,
              "nodeType": "Block",
              "src": "658:77:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "54686973207465726d7320636f6e747261637420646f65736e277420737570706f72742074686973206f7065726174696f6e",
                        "id": 2952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "675:52:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fb40c9c4823fd9bea44b4202c545d7a4e0f3953545cf0969954c1855e3a8f78c",
                          "typeString": "literal_string \"This terms contract doesn't support this operation\""
                        },
                        "value": "This terms contract doesn't support this operation"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_fb40c9c4823fd9bea44b4202c545d7a4e0f3953545cf0969954c1855e3a8f78c",
                          "typeString": "literal_string \"This terms contract doesn't support this operation\""
                        }
                      ],
                      "id": 2951,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6100,
                        6101
                      ],
                      "referencedDeclaration": 6101,
                      "src": "668:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 2953,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "668:60:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2954,
                  "nodeType": "ExpressionStatement",
                  "src": "668:60:13"
                }
              ]
            },
            "documentation": null,
            "id": 2956,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "changePeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2946,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2956,
                  "src": "630:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2945,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "630:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2948,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2956,
                  "src": "639:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2947,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "639:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "629:15:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 2950,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "658:0:13"
            },
            "scope": 3161,
            "src": "608:127:13",
            "stateMutability": "nonpayable",
            "superFunction": 3505,
            "visibility": "external"
          },
          {
            "body": {
              "id": 2997,
              "nodeType": "Block",
              "src": "930:361:13",
              "statements": [
                {
                  "assignments": [
                    2965
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2965,
                      "name": "_participationPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 2998,
                      "src": "940:28:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2964,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "940:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2971,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2967,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2959,
                          "src": "979:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2969,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2968,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "986:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "979:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2966,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "971:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 2970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "971:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "940:49:13"
                },
                {
                  "assignments": [
                    2973
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2973,
                      "name": "_waitingPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 2998,
                      "src": "999:22:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2972,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "999:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2979,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2975,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2959,
                          "src": "1032:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2977,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2976,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1039:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1032:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2974,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1024:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 2978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1024:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "999:43:13"
                },
                {
                  "assignments": [
                    2981
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2981,
                      "name": "_retrievingPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 2998,
                      "src": "1052:25:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2980,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1052:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2987,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2983,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2959,
                          "src": "1088:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2985,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 2984,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1095:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1088:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1080:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 2986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1080:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1052:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2991,
                            "name": "_participationPeriod",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2965,
                            "src": "1173:20:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2992,
                            "name": "_waitingPeriod",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2973,
                            "src": "1211:14:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2993,
                            "name": "_retrievingPeriod",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2981,
                            "src": "1243:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2989,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6082,
                            "src": "1139:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1139:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2994,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1139:135:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2988,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6089,
                      "src": "1116:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2995,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1116:168:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2963,
                  "id": 2996,
                  "nodeType": "Return",
                  "src": "1109:175:13"
                }
              ]
            },
            "documentation": "@dev Function that returns a terms hash for the next event\n@return bytes32 the terms hash",
            "id": 2998,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTermsHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2959,
                  "name": "_terms",
                  "nodeType": "VariableDeclaration",
                  "scope": 2998,
                  "src": "883:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2957,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "883:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2958,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "883:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "882:18:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 2963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2962,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2998,
                  "src": "921:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2961,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "921:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "920:9:13"
            },
            "scope": 3161,
            "src": "861:430:13",
            "stateMutability": "view",
            "superFunction": 3513,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3069,
              "nodeType": "Block",
              "src": "1358:712:13",
              "statements": [
                {
                  "assignments": [
                    3007
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3007,
                      "name": "_participationPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "1368:28:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3006,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1368:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3013,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3009,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3001,
                          "src": "1407:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 3011,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3010,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1414:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1407:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3008,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1399:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 3012,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1399:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1368:49:13"
                },
                {
                  "assignments": [
                    3015
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3015,
                      "name": "_waitingPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "1427:22:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3014,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1427:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3021,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3017,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3001,
                          "src": "1460:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 3019,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3018,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1467:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1460:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1452:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 3020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1452:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1427:43:13"
                },
                {
                  "assignments": [
                    3023
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3023,
                      "name": "_retrievingPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "1480:25:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3022,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1480:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3029,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3025,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3001,
                          "src": "1516:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 3027,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 3026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1523:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1516:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1508:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 3028,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1508:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1480:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3033,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3031,
                          "name": "_participationPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3007,
                          "src": "1607:20:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3032,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6097,
                          "src": "1630:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1607:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "50617274696369706174696f6e20706572696f64206d75737420626520756e74696c2066757475726520646561646c696e65",
                        "id": 3034,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1635:52:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3e9e86b9042759e4d21f592d915869e081154be385f37d73316dcb208662df02",
                          "typeString": "literal_string \"Participation period must be until future deadline\""
                        },
                        "value": "Participation period must be until future deadline"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3e9e86b9042759e4d21f592d915869e081154be385f37d73316dcb208662df02",
                          "typeString": "literal_string \"Participation period must be until future deadline\""
                        }
                      ],
                      "id": 3030,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6099,
                      "src": "1599:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1599:89:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3036,
                  "nodeType": "ExpressionStatement",
                  "src": "1599:89:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3040,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3038,
                          "name": "_waitingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3015,
                          "src": "1706:14:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3039,
                          "name": "_participationPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3007,
                          "src": "1723:20:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1706:37:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "57616974696e6720706572696f64206d75737420656e642061667465722070617274696369706174696f6e20706572696f64",
                        "id": 3041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1745:52:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c1e7a332080b81dabe368f4faf74edbd0c2c2bb17ec922093cbf52bae73f30c",
                          "typeString": "literal_string \"Waiting period must end after participation period\""
                        },
                        "value": "Waiting period must end after participation period"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c1e7a332080b81dabe368f4faf74edbd0c2c2bb17ec922093cbf52bae73f30c",
                          "typeString": "literal_string \"Waiting period must end after participation period\""
                        }
                      ],
                      "id": 3037,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6099,
                      "src": "1698:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1698:100:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3043,
                  "nodeType": "ExpressionStatement",
                  "src": "1698:100:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3047,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3045,
                          "name": "_retrievingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3023,
                          "src": "1816:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3046,
                          "name": "_waitingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3015,
                          "src": "1836:14:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1816:34:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "52657472696576696e6720706572696f64206d75737420656e642061667465722077616974696e6720706572696f64",
                        "id": 3048,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1852:49:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9be69fb0d100dec6939f9ee13da9e31d335fc6f02abb044f169781bd6267bf98",
                          "typeString": "literal_string \"Retrieving period must end after waiting period\""
                        },
                        "value": "Retrieving period must end after waiting period"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9be69fb0d100dec6939f9ee13da9e31d335fc6f02abb044f169781bd6267bf98",
                          "typeString": "literal_string \"Retrieving period must end after waiting period\""
                        }
                      ],
                      "id": 3044,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6099,
                      "src": "1808:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1808:94:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3050,
                  "nodeType": "ExpressionStatement",
                  "src": "1808:94:13"
                },
                {
                  "assignments": [
                    3052
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3052,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "1913:12:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3051,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1913:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3056,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3054,
                        "name": "_terms",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3001,
                        "src": "1941:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      ],
                      "id": 3053,
                      "name": "getTermsHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2998
                      ],
                      "referencedDeclaration": 2998,
                      "src": "1928:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32[] memory) view returns (bytes32)"
                      }
                    },
                    "id": 3055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1928:20:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1913:35:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3065,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3057,
                        "name": "betsTerms",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2944,
                        "src": "1958:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                          "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                        }
                      },
                      "id": 3059,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3058,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3052,
                        "src": "1968:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1958:15:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                        "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3061,
                          "name": "_participationPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3007,
                          "src": "1985:20:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3062,
                          "name": "_waitingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3015,
                          "src": "2007:14:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3063,
                          "name": "_retrievingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3023,
                          "src": "2023:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 3060,
                        "name": "BetTerms",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2940,
                        "src": "1976:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_BetTerms_$2940_storage_ptr_$",
                          "typeString": "type(struct TimeBasedTerms.BetTerms storage pointer)"
                        }
                      },
                      "id": 3064,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1976:65:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetTerms_$2940_memory",
                        "typeString": "struct TimeBasedTerms.BetTerms memory"
                      }
                    },
                    "src": "1958:83:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                      "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                    }
                  },
                  "id": 3066,
                  "nodeType": "ExpressionStatement",
                  "src": "1958:83:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 3067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2059:4:13",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 3005,
                  "id": 3068,
                  "nodeType": "Return",
                  "src": "2052:11:13"
                }
              ]
            },
            "documentation": null,
            "id": 3070,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setTermsHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3001,
                  "name": "_terms",
                  "nodeType": "VariableDeclaration",
                  "scope": 3070,
                  "src": "1319:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2999,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1319:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3000,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1319:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1318:18:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3004,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3070,
                  "src": "1352:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3003,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1352:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1351:6:13"
            },
            "scope": 3161,
            "src": "1297:773:13",
            "stateMutability": "nonpayable",
            "superFunction": 3498,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3084,
              "nodeType": "Block",
              "src": "2329:133:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3077,
                          "name": "betsTerms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2944,
                          "src": "2408:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                            "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                          }
                        },
                        "id": 3079,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3078,
                          "name": "_termsHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3072,
                          "src": "2418:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2408:21:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                          "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                        }
                      },
                      "id": 3080,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "participationPeriod",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2935,
                      "src": "2408:41:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3081,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6097,
                      "src": "2452:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2408:47:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3076,
                  "id": 3083,
                  "nodeType": "Return",
                  "src": "2401:54:13"
                }
              ]
            },
            "documentation": "@dev Function that tells if it is the period for playing\n@param _termsHash bytes32 of the event\n@return bool if it is the period for playing",
            "id": 3085,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "participationPeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3072,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3085,
                  "src": "2283:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3071,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2283:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2282:20:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3076,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3075,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3085,
                  "src": "2323:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3074,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2323:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2322:6:13"
            },
            "scope": 3161,
            "src": "2254:208:13",
            "stateMutability": "view",
            "superFunction": 3520,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3106,
              "nodeType": "Block",
              "src": "2707:178:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 3104,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3097,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3092,
                            "name": "betsTerms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2944,
                            "src": "2786:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                            }
                          },
                          "id": 3094,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3093,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3087,
                            "src": "2796:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2786:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                            "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                          }
                        },
                        "id": 3095,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "participationPeriod",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2935,
                        "src": "2786:41:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3096,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6097,
                        "src": "2830:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2786:47:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3103,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3098,
                            "name": "betsTerms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2944,
                            "src": "2837:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                            }
                          },
                          "id": 3100,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3099,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3087,
                            "src": "2847:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2837:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                            "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                          }
                        },
                        "id": 3101,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "waitingPeriod",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2937,
                        "src": "2837:35:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3102,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6097,
                        "src": "2875:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2837:41:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2786:92:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3091,
                  "id": 3105,
                  "nodeType": "Return",
                  "src": "2779:99:13"
                }
              ]
            },
            "documentation": "@dev Function that tells if the event is in stand by\n@param _termsHash bytes32 of the event\n@return bool if it is the waiting period",
            "id": 3107,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "waitingPeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3087,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3107,
                  "src": "2661:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3086,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2661:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2660:20:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3090,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3107,
                  "src": "2701:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3089,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2701:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2700:6:13"
            },
            "scope": 3161,
            "src": "2638:247:13",
            "stateMutability": "view",
            "superFunction": 3527,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3128,
              "nodeType": "Block",
              "src": "3145:175:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 3126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3119,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3114,
                            "name": "betsTerms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2944,
                            "src": "3224:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                            }
                          },
                          "id": 3116,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3115,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3109,
                            "src": "3234:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3224:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                            "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                          }
                        },
                        "id": 3117,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "waitingPeriod",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2937,
                        "src": "3224:35:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3118,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6097,
                        "src": "3262:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3224:41:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3125,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3120,
                            "name": "betsTerms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2944,
                            "src": "3269:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                            }
                          },
                          "id": 3122,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3121,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3109,
                            "src": "3279:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3269:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                            "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                          }
                        },
                        "id": 3123,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "retrievingPeriod",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2939,
                        "src": "3269:38:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3124,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6097,
                        "src": "3310:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3269:44:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3224:89:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3113,
                  "id": 3127,
                  "nodeType": "Return",
                  "src": "3217:96:13"
                }
              ]
            },
            "documentation": "@dev Function that tells if the period for playing is over\n@param _termsHash bytes32 of the event\n@return bool if the period for betting is over",
            "id": 3129,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "retrievingPeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3109,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3129,
                  "src": "3099:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3108,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3099:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3098:20:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3112,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3129,
                  "src": "3139:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3111,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3139:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3138:6:13"
            },
            "scope": 3161,
            "src": "3073:247:13",
            "stateMutability": "view",
            "superFunction": 3534,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3143,
              "nodeType": "Block",
              "src": "3552:127:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3136,
                          "name": "betsTerms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2944,
                          "src": "3631:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                            "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                          }
                        },
                        "id": 3138,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3137,
                          "name": "_termsHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3131,
                          "src": "3641:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3631:21:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                          "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                        }
                      },
                      "id": 3139,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "waitingPeriod",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2937,
                      "src": "3631:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3140,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6097,
                      "src": "3669:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3631:41:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3135,
                  "id": 3142,
                  "nodeType": "Return",
                  "src": "3624:48:13"
                }
              ]
            },
            "documentation": "@dev Function that tells if the event is over\n@param _termsHash bytes32 of the event\n@return bool if the event is over",
            "id": 3144,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "finishedPeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3132,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3131,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3144,
                  "src": "3506:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3130,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3506:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3505:20:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3134,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3144,
                  "src": "3546:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3133,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3546:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3545:6:13"
            },
            "scope": 3161,
            "src": "3482:197:13",
            "stateMutability": "view",
            "superFunction": 3541,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3159,
              "nodeType": "Block",
              "src": "3752:66:13",
              "statements": [
                {
                  "assignments": [
                    3152
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3152,
                      "name": "_b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3160,
                      "src": "3762:10:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3151,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3762:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3156,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3154,
                        "name": "_number",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3146,
                        "src": "3783:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3775:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes32_$",
                        "typeString": "type(bytes32)"
                      },
                      "typeName": "bytes32"
                    },
                    "id": 3155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3775:16:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3762:29:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3157,
                    "name": "_b",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3152,
                    "src": "3809:2:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3150,
                  "id": 3158,
                  "nodeType": "Return",
                  "src": "3802:9:13"
                }
              ]
            },
            "documentation": null,
            "id": 3160,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "uintToBytes32",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3147,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3146,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 3160,
                  "src": "3708:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3145,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3708:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3707:14:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3149,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3160,
                  "src": "3743:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3743:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3742:9:13"
            },
            "scope": 3161,
            "src": "3685:133:13",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3162,
        "src": "350:3470:13"
      }
    ],
    "src": "0:3821:13"
  },
  "legacyAST": {
    "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/BetTermsExamples/TimeBasedTerms.sol",
    "exportedSymbols": {
      "TimeBasedTerms": [
        3161
      ]
    },
    "id": 3162,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2927,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:13"
      },
      {
        "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/RegistrySetter.sol",
        "file": "../RegistrySetter.sol",
        "id": 2928,
        "nodeType": "ImportDirective",
        "scope": 3162,
        "sourceUnit": 3710,
        "src": "38:31:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/ProxyInterfaces/BetTermsProxyInterface.sol",
        "file": "../ProxyInterfaces/BetTermsProxyInterface.sol",
        "id": 2929,
        "nodeType": "ImportDirective",
        "scope": 3162,
        "sourceUnit": 3543,
        "src": "70:55:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2930,
              "name": "RegistrySetter",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3709,
              "src": "377:14:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RegistrySetter_$3709",
                "typeString": "contract RegistrySetter"
              }
            },
            "id": 2931,
            "nodeType": "InheritanceSpecifier",
            "src": "377:14:13"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2932,
              "name": "BetTermsProxyInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3542,
              "src": "393:22:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BetTermsProxyInterface_$3542",
                "typeString": "contract BetTermsProxyInterface"
              }
            },
            "id": 2933,
            "nodeType": "InheritanceSpecifier",
            "src": "393:22:13"
          }
        ],
        "contractDependencies": [
          3542,
          3709,
          4173,
          4353
        ],
        "contractKind": "contract",
        "documentation": "@title Owner Based Terms. ",
        "fullyImplemented": true,
        "id": 3161,
        "linearizedBaseContracts": [
          3161,
          3542,
          3709,
          4173,
          4353
        ],
        "name": "TimeBasedTerms",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "TimeBasedTerms.BetTerms",
            "id": 2940,
            "members": [
              {
                "constant": false,
                "id": 2935,
                "name": "participationPeriod",
                "nodeType": "VariableDeclaration",
                "scope": 2940,
                "src": "449:27:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2934,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "449:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2937,
                "name": "waitingPeriod",
                "nodeType": "VariableDeclaration",
                "scope": 2940,
                "src": "486:21:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2936,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "486:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2939,
                "name": "retrievingPeriod",
                "nodeType": "VariableDeclaration",
                "scope": 2940,
                "src": "517:24:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2938,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "517:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "BetTerms",
            "nodeType": "StructDefinition",
            "scope": 3161,
            "src": "423:125:13",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2944,
            "name": "betsTerms",
            "nodeType": "VariableDeclaration",
            "scope": 3161,
            "src": "554:47:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms)"
            },
            "typeName": {
              "id": 2943,
              "keyType": {
                "id": 2941,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "562:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "554:28:13",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2942,
                "name": "BetTerms",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2940,
                "src": "573:8:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_BetTerms_$2940_storage_ptr",
                  "typeString": "struct TimeBasedTerms.BetTerms"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2955,
              "nodeType": "Block",
              "src": "658:77:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "54686973207465726d7320636f6e747261637420646f65736e277420737570706f72742074686973206f7065726174696f6e",
                        "id": 2952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "675:52:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fb40c9c4823fd9bea44b4202c545d7a4e0f3953545cf0969954c1855e3a8f78c",
                          "typeString": "literal_string \"This terms contract doesn't support this operation\""
                        },
                        "value": "This terms contract doesn't support this operation"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_fb40c9c4823fd9bea44b4202c545d7a4e0f3953545cf0969954c1855e3a8f78c",
                          "typeString": "literal_string \"This terms contract doesn't support this operation\""
                        }
                      ],
                      "id": 2951,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6100,
                        6101
                      ],
                      "referencedDeclaration": 6101,
                      "src": "668:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 2953,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "668:60:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2954,
                  "nodeType": "ExpressionStatement",
                  "src": "668:60:13"
                }
              ]
            },
            "documentation": null,
            "id": 2956,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "changePeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2946,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2956,
                  "src": "630:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2945,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "630:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2948,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2956,
                  "src": "639:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2947,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "639:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "629:15:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 2950,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "658:0:13"
            },
            "scope": 3161,
            "src": "608:127:13",
            "stateMutability": "nonpayable",
            "superFunction": 3505,
            "visibility": "external"
          },
          {
            "body": {
              "id": 2997,
              "nodeType": "Block",
              "src": "930:361:13",
              "statements": [
                {
                  "assignments": [
                    2965
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2965,
                      "name": "_participationPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 2998,
                      "src": "940:28:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2964,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "940:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2971,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2967,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2959,
                          "src": "979:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2969,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2968,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "986:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "979:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2966,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "971:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 2970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "971:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "940:49:13"
                },
                {
                  "assignments": [
                    2973
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2973,
                      "name": "_waitingPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 2998,
                      "src": "999:22:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2972,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "999:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2979,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2975,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2959,
                          "src": "1032:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2977,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2976,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1039:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1032:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2974,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1024:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 2978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1024:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "999:43:13"
                },
                {
                  "assignments": [
                    2981
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2981,
                      "name": "_retrievingPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 2998,
                      "src": "1052:25:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2980,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1052:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2987,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2983,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2959,
                          "src": "1088:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2985,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 2984,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1095:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1088:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1080:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 2986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1080:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1052:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2991,
                            "name": "_participationPeriod",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2965,
                            "src": "1173:20:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2992,
                            "name": "_waitingPeriod",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2973,
                            "src": "1211:14:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2993,
                            "name": "_retrievingPeriod",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2981,
                            "src": "1243:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2989,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6082,
                            "src": "1139:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1139:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2994,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1139:135:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2988,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6089,
                      "src": "1116:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2995,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1116:168:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2963,
                  "id": 2996,
                  "nodeType": "Return",
                  "src": "1109:175:13"
                }
              ]
            },
            "documentation": "@dev Function that returns a terms hash for the next event\n@return bytes32 the terms hash",
            "id": 2998,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTermsHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2959,
                  "name": "_terms",
                  "nodeType": "VariableDeclaration",
                  "scope": 2998,
                  "src": "883:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2957,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "883:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2958,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "883:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "882:18:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 2963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2962,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2998,
                  "src": "921:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2961,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "921:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "920:9:13"
            },
            "scope": 3161,
            "src": "861:430:13",
            "stateMutability": "view",
            "superFunction": 3513,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3069,
              "nodeType": "Block",
              "src": "1358:712:13",
              "statements": [
                {
                  "assignments": [
                    3007
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3007,
                      "name": "_participationPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "1368:28:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3006,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1368:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3013,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3009,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3001,
                          "src": "1407:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 3011,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3010,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1414:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1407:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3008,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1399:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 3012,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1399:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1368:49:13"
                },
                {
                  "assignments": [
                    3015
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3015,
                      "name": "_waitingPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "1427:22:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3014,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1427:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3021,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3017,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3001,
                          "src": "1460:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 3019,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3018,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1467:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1460:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1452:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 3020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1452:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1427:43:13"
                },
                {
                  "assignments": [
                    3023
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3023,
                      "name": "_retrievingPeriod",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "1480:25:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3022,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1480:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3029,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3025,
                          "name": "_terms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3001,
                          "src": "1516:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 3027,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 3026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1523:1:13",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1516:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1508:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 3028,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1508:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1480:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3033,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3031,
                          "name": "_participationPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3007,
                          "src": "1607:20:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3032,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6097,
                          "src": "1630:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1607:26:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "50617274696369706174696f6e20706572696f64206d75737420626520756e74696c2066757475726520646561646c696e65",
                        "id": 3034,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1635:52:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3e9e86b9042759e4d21f592d915869e081154be385f37d73316dcb208662df02",
                          "typeString": "literal_string \"Participation period must be until future deadline\""
                        },
                        "value": "Participation period must be until future deadline"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3e9e86b9042759e4d21f592d915869e081154be385f37d73316dcb208662df02",
                          "typeString": "literal_string \"Participation period must be until future deadline\""
                        }
                      ],
                      "id": 3030,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6099,
                      "src": "1599:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1599:89:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3036,
                  "nodeType": "ExpressionStatement",
                  "src": "1599:89:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3040,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3038,
                          "name": "_waitingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3015,
                          "src": "1706:14:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3039,
                          "name": "_participationPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3007,
                          "src": "1723:20:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1706:37:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "57616974696e6720706572696f64206d75737420656e642061667465722070617274696369706174696f6e20706572696f64",
                        "id": 3041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1745:52:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c1e7a332080b81dabe368f4faf74edbd0c2c2bb17ec922093cbf52bae73f30c",
                          "typeString": "literal_string \"Waiting period must end after participation period\""
                        },
                        "value": "Waiting period must end after participation period"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c1e7a332080b81dabe368f4faf74edbd0c2c2bb17ec922093cbf52bae73f30c",
                          "typeString": "literal_string \"Waiting period must end after participation period\""
                        }
                      ],
                      "id": 3037,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6099,
                      "src": "1698:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1698:100:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3043,
                  "nodeType": "ExpressionStatement",
                  "src": "1698:100:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3047,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3045,
                          "name": "_retrievingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3023,
                          "src": "1816:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3046,
                          "name": "_waitingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3015,
                          "src": "1836:14:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1816:34:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "52657472696576696e6720706572696f64206d75737420656e642061667465722077616974696e6720706572696f64",
                        "id": 3048,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1852:49:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9be69fb0d100dec6939f9ee13da9e31d335fc6f02abb044f169781bd6267bf98",
                          "typeString": "literal_string \"Retrieving period must end after waiting period\""
                        },
                        "value": "Retrieving period must end after waiting period"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9be69fb0d100dec6939f9ee13da9e31d335fc6f02abb044f169781bd6267bf98",
                          "typeString": "literal_string \"Retrieving period must end after waiting period\""
                        }
                      ],
                      "id": 3044,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6099,
                      "src": "1808:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1808:94:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3050,
                  "nodeType": "ExpressionStatement",
                  "src": "1808:94:13"
                },
                {
                  "assignments": [
                    3052
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3052,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "1913:12:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3051,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1913:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3056,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3054,
                        "name": "_terms",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3001,
                        "src": "1941:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      ],
                      "id": 3053,
                      "name": "getTermsHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2998
                      ],
                      "referencedDeclaration": 2998,
                      "src": "1928:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32[] memory) view returns (bytes32)"
                      }
                    },
                    "id": 3055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1928:20:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1913:35:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3065,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3057,
                        "name": "betsTerms",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2944,
                        "src": "1958:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                          "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                        }
                      },
                      "id": 3059,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3058,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3052,
                        "src": "1968:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1958:15:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                        "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3061,
                          "name": "_participationPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3007,
                          "src": "1985:20:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3062,
                          "name": "_waitingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3015,
                          "src": "2007:14:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3063,
                          "name": "_retrievingPeriod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3023,
                          "src": "2023:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 3060,
                        "name": "BetTerms",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2940,
                        "src": "1976:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_BetTerms_$2940_storage_ptr_$",
                          "typeString": "type(struct TimeBasedTerms.BetTerms storage pointer)"
                        }
                      },
                      "id": 3064,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1976:65:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetTerms_$2940_memory",
                        "typeString": "struct TimeBasedTerms.BetTerms memory"
                      }
                    },
                    "src": "1958:83:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                      "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                    }
                  },
                  "id": 3066,
                  "nodeType": "ExpressionStatement",
                  "src": "1958:83:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 3067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2059:4:13",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 3005,
                  "id": 3068,
                  "nodeType": "Return",
                  "src": "2052:11:13"
                }
              ]
            },
            "documentation": null,
            "id": 3070,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setTermsHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3001,
                  "name": "_terms",
                  "nodeType": "VariableDeclaration",
                  "scope": 3070,
                  "src": "1319:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2999,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1319:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3000,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1319:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1318:18:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3004,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3070,
                  "src": "1352:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3003,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1352:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1351:6:13"
            },
            "scope": 3161,
            "src": "1297:773:13",
            "stateMutability": "nonpayable",
            "superFunction": 3498,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3084,
              "nodeType": "Block",
              "src": "2329:133:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3077,
                          "name": "betsTerms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2944,
                          "src": "2408:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                            "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                          }
                        },
                        "id": 3079,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3078,
                          "name": "_termsHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3072,
                          "src": "2418:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2408:21:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                          "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                        }
                      },
                      "id": 3080,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "participationPeriod",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2935,
                      "src": "2408:41:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3081,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6097,
                      "src": "2452:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2408:47:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3076,
                  "id": 3083,
                  "nodeType": "Return",
                  "src": "2401:54:13"
                }
              ]
            },
            "documentation": "@dev Function that tells if it is the period for playing\n@param _termsHash bytes32 of the event\n@return bool if it is the period for playing",
            "id": 3085,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "participationPeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3072,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3085,
                  "src": "2283:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3071,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2283:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2282:20:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3076,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3075,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3085,
                  "src": "2323:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3074,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2323:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2322:6:13"
            },
            "scope": 3161,
            "src": "2254:208:13",
            "stateMutability": "view",
            "superFunction": 3520,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3106,
              "nodeType": "Block",
              "src": "2707:178:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 3104,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3097,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3092,
                            "name": "betsTerms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2944,
                            "src": "2786:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                            }
                          },
                          "id": 3094,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3093,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3087,
                            "src": "2796:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2786:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                            "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                          }
                        },
                        "id": 3095,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "participationPeriod",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2935,
                        "src": "2786:41:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3096,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6097,
                        "src": "2830:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2786:47:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3103,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3098,
                            "name": "betsTerms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2944,
                            "src": "2837:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                            }
                          },
                          "id": 3100,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3099,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3087,
                            "src": "2847:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2837:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                            "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                          }
                        },
                        "id": 3101,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "waitingPeriod",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2937,
                        "src": "2837:35:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3102,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6097,
                        "src": "2875:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2837:41:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2786:92:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3091,
                  "id": 3105,
                  "nodeType": "Return",
                  "src": "2779:99:13"
                }
              ]
            },
            "documentation": "@dev Function that tells if the event is in stand by\n@param _termsHash bytes32 of the event\n@return bool if it is the waiting period",
            "id": 3107,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "waitingPeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3087,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3107,
                  "src": "2661:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3086,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2661:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2660:20:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3090,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3107,
                  "src": "2701:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3089,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2701:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2700:6:13"
            },
            "scope": 3161,
            "src": "2638:247:13",
            "stateMutability": "view",
            "superFunction": 3527,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3128,
              "nodeType": "Block",
              "src": "3145:175:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 3126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3119,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3114,
                            "name": "betsTerms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2944,
                            "src": "3224:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                            }
                          },
                          "id": 3116,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3115,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3109,
                            "src": "3234:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3224:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                            "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                          }
                        },
                        "id": 3117,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "waitingPeriod",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2937,
                        "src": "3224:35:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3118,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6097,
                        "src": "3262:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3224:41:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3125,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3120,
                            "name": "betsTerms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2944,
                            "src": "3269:9:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                              "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                            }
                          },
                          "id": 3122,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3121,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3109,
                            "src": "3279:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3269:21:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                            "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                          }
                        },
                        "id": 3123,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "retrievingPeriod",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2939,
                        "src": "3269:38:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3124,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6097,
                        "src": "3310:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3269:44:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3224:89:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3113,
                  "id": 3127,
                  "nodeType": "Return",
                  "src": "3217:96:13"
                }
              ]
            },
            "documentation": "@dev Function that tells if the period for playing is over\n@param _termsHash bytes32 of the event\n@return bool if the period for betting is over",
            "id": 3129,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "retrievingPeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3109,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3129,
                  "src": "3099:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3108,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3099:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3098:20:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3112,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3129,
                  "src": "3139:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3111,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3139:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3138:6:13"
            },
            "scope": 3161,
            "src": "3073:247:13",
            "stateMutability": "view",
            "superFunction": 3534,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3143,
              "nodeType": "Block",
              "src": "3552:127:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3136,
                          "name": "betsTerms",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2944,
                          "src": "3631:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetTerms_$2940_storage_$",
                            "typeString": "mapping(bytes32 => struct TimeBasedTerms.BetTerms storage ref)"
                          }
                        },
                        "id": 3138,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3137,
                          "name": "_termsHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3131,
                          "src": "3641:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3631:21:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetTerms_$2940_storage",
                          "typeString": "struct TimeBasedTerms.BetTerms storage ref"
                        }
                      },
                      "id": 3139,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "waitingPeriod",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2937,
                      "src": "3631:35:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3140,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6097,
                      "src": "3669:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3631:41:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3135,
                  "id": 3142,
                  "nodeType": "Return",
                  "src": "3624:48:13"
                }
              ]
            },
            "documentation": "@dev Function that tells if the event is over\n@param _termsHash bytes32 of the event\n@return bool if the event is over",
            "id": 3144,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "finishedPeriod",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3132,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3131,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3144,
                  "src": "3506:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3130,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3506:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3505:20:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3134,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3144,
                  "src": "3546:4:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3133,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3546:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3545:6:13"
            },
            "scope": 3161,
            "src": "3482:197:13",
            "stateMutability": "view",
            "superFunction": 3541,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3159,
              "nodeType": "Block",
              "src": "3752:66:13",
              "statements": [
                {
                  "assignments": [
                    3152
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3152,
                      "name": "_b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3160,
                      "src": "3762:10:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3151,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3762:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3156,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3154,
                        "name": "_number",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3146,
                        "src": "3783:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3775:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes32_$",
                        "typeString": "type(bytes32)"
                      },
                      "typeName": "bytes32"
                    },
                    "id": 3155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3775:16:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3762:29:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3157,
                    "name": "_b",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3152,
                    "src": "3809:2:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3150,
                  "id": 3158,
                  "nodeType": "Return",
                  "src": "3802:9:13"
                }
              ]
            },
            "documentation": null,
            "id": 3160,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "uintToBytes32",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3147,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3146,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 3160,
                  "src": "3708:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3145,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3708:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3707:14:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 3150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3149,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3160,
                  "src": "3743:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3743:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3742:9:13"
            },
            "scope": 3161,
            "src": "3685:133:13",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3162,
        "src": "350:3470:13"
      }
    ],
    "src": "0:3821:13"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "70": {
      "events": {
        "0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625": {
          "anonymous": false,
          "inputs": [],
          "name": "Pause",
          "type": "event",
          "signature": "0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"
        },
        "0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33": {
          "anonymous": false,
          "inputs": [],
          "name": "Unpause",
          "type": "event",
          "signature": "0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"
        },
        "0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipRenounced",
          "type": "event",
          "signature": "0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event",
          "signature": "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0"
        }
      },
      "links": {},
      "address": "0xE22e38310ea44861a1a3E6F0337468024B14D12b",
      "transactionHash": "0xf48b53cbd9cb300ebb2d49d6a4fd5d502968679be0f5dcdddc04cc3e5cc43d9c"
    },
    "5777": {
      "events": {
        "0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625": {
          "anonymous": false,
          "inputs": [],
          "name": "Pause",
          "type": "event",
          "signature": "0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"
        },
        "0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33": {
          "anonymous": false,
          "inputs": [],
          "name": "Unpause",
          "type": "event",
          "signature": "0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"
        },
        "0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipRenounced",
          "type": "event",
          "signature": "0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event",
          "signature": "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0"
        }
      },
      "links": {},
      "address": "0x1EC216199Fc4df88Ef373706A3996e9c57237F69",
      "transactionHash": "0x0f57c1838db446432803fdadad0e6781b61719fbdac332695f09fac48aa926b1"
    }
  },
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-11-09T16:16:18.254Z"
}