{
  "contractName": "BetRegistry",
  "abi": [
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betTerms",
          "type": "address"
        }
      ],
      "name": "setBetTerms",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x08fb0970"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betKernel",
          "type": "address"
        }
      ],
      "name": "setBetKernel",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x171f1af1"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "bets",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x22af00fa"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x3f4ba83a"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "betKernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x4c98ee7b"
    },
    {
      "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": true,
      "inputs": [],
      "name": "betOracle",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x80fabc91"
    },
    {
      "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": true,
      "inputs": [],
      "name": "proxyRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xb50cbd9f"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betPayments",
          "type": "address"
        }
      ],
      "name": "setBetPayments",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xbad07ee7"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "betTerms",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xca033e7d"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "betPayments",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xdd943d04"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betOracle",
          "type": "address"
        }
      ],
      "name": "setBetOracle",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xe7ae81f7"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xf2fde38b"
    },
    {
      "inputs": [
        {
          "name": "_proxyRegistry",
          "type": "address"
        },
        {
          "name": "_betKernel",
          "type": "address"
        },
        {
          "name": "_betPayments",
          "type": "address"
        },
        {
          "name": "_betOracle",
          "type": "address"
        },
        {
          "name": "_betTerms",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor",
      "signature": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "LogBetEntry",
      "type": "event",
      "signature": "0x3e3f1562581d79765962e32ff89b9793d9b8feccbab14ae907be9a320c2dccf8"
    },
    {
      "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": "_proxyRegistry",
          "type": "address"
        }
      ],
      "name": "setProxyRegistry",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xadfdeef9"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernelProxy",
          "type": "address"
        },
        {
          "name": "_paymentsProxy",
          "type": "address"
        },
        {
          "name": "_paymentsToken",
          "type": "address"
        },
        {
          "name": "_oracleProxy",
          "type": "address"
        },
        {
          "name": "_termsProxy",
          "type": "address"
        },
        {
          "name": "_termsHash",
          "type": "bytes32"
        },
        {
          "name": "_title",
          "type": "string"
        },
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_salt",
          "type": "uint256"
        }
      ],
      "name": "createBet",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xb67265bd"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "getBet",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x061e494f"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_option",
          "type": "uint256"
        },
        {
          "name": "_number",
          "type": "uint256"
        }
      ],
      "name": "insertPlayerBet",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x5faa7cee"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_number",
          "type": "uint256"
        }
      ],
      "name": "addTotalPrincipal",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x4fc2c76c"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_option",
          "type": "uint256"
        },
        {
          "name": "_number",
          "type": "uint256"
        }
      ],
      "name": "addToOption",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xb90a4149"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_option",
          "type": "uint256"
        },
        {
          "name": "_number",
          "type": "uint256"
        }
      ],
      "name": "getPlayerBetHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xf61fdeb8"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_option",
          "type": "uint256"
        },
        {
          "name": "_title",
          "type": "string"
        }
      ],
      "name": "setOptionTitle",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xe91e48da"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetKernelProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x3a8100d1"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetPaymentsProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x14715bcc"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetPaymentsToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xde1028e1"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetOracleProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x30cdb40d"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetTermsProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x7171e757"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetTermsHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x82507452"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetTitle",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xf78bdec6"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetDatetime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xb87822bd"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getBetCreator",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xac21e313"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "getTotalPrincipal",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xafc27791"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_option",
          "type": "uint256"
        }
      ],
      "name": "getPrincipalInOption",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x2659a074"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_option",
          "type": "uint256"
        }
      ],
      "name": "getOptionTitle",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x91061d6f"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_playerBetHash",
          "type": "bytes32"
        }
      ],
      "name": "getPlayerBetPlayer",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x81bf3702"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_playerBetHash",
          "type": "bytes32"
        }
      ],
      "name": "getPlayerBetOption",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x7d95ff89"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_playerBetHash",
          "type": "bytes32"
        }
      ],
      "name": "getPlayerBetPrincipal",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xb2aa5d0c"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_playerBetHash",
          "type": "bytes32"
        }
      ],
      "name": "getPlayerBetReturned",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x9d5e6938"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        }
      ],
      "name": "betExists",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xd8818ad9"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_playerBetHash",
          "type": "bytes32"
        }
      ],
      "name": "playerBetExists",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xe5646597"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betHash",
          "type": "bytes32"
        },
        {
          "name": "_playerBetHash",
          "type": "bytes32"
        },
        {
          "name": "_returned",
          "type": "bool"
        }
      ],
      "name": "setPlayerBetReturned",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x41b273bb"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        }
      ],
      "name": "isAuthorised",
      "outputs": [],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x51b699cd"
    }
  ],
  "bytecode": "0x608060405260008060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b5060405160a0806138698339810180604052810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505061365b8061020e6000396000f30060806040526004361061021a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063061e494f1461021f57806308fb09701461026857806314715bcc146102ab578063171f1af11461031c57806322af00fa1461035f5780632659a074146103a857806330cdb40d146103f75780633a8100d1146104685780633f4ba83a146104d957806341b273bb146104f05780634c98ee7b146105535780634fc2c76c146105aa57806351b699cd146105f95780635c975abb1461063c5780635faa7cee1461066b578063715018a6146106ec5780637171e757146107035780637d95ff891461077457806380fabc91146107c757806381bf37021461081e578063825074521461089d5780638456cb59146108ea5780638da5cb5b1461090157806391061d6f146109585780639d5e693814610a0c578063ac21e31314610a63578063adfdeef914610ad4578063afc2779114610b17578063b2aa5d0c14610b5c578063b50cbd9f14610baf578063b67265bd14610c06578063b87822bd14610d63578063b90a414914610da8578063bad07ee714610e01578063ca033e7d14610e44578063d8818ad914610e9b578063dd943d0414610ee4578063de1028e114610f3b578063e564659714610fac578063e7ae81f714611003578063e91e48da14611046578063f2fde38b146110c7578063f61fdeb81461110a578063f78bdec61461118b575b600080fd5b34801561022b57600080fd5b5061024a60048036038101908080359060200190929190505050611235565b60405180826000191660001916815260200191505060405180910390f35b34801561027457600080fd5b506102a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611258565b005b3480156102b757600080fd5b506102da60048036038101908080356000191690602001909291905050506112f7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032857600080fd5b5061035d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611353565b005b34801561036b57600080fd5b5061038a600480360381019080803590602001909291905050506113f2565b60405180826000191660001916815260200191505060405180910390f35b3480156103b457600080fd5b506103e1600480360381019080803560001916906020019092919080359060200190929190505050611415565b6040518082815260200191505060405180910390f35b34801561040357600080fd5b506104266004803603810190808035600019169060200190929190505050611463565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047457600080fd5b5061049760048036038101908080356000191690602001909291905050506114bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e557600080fd5b506104ee61151b565b005b3480156104fc57600080fd5b50610539600480360381019080803560001916906020019092919080356000191690602001909291908035151590602001909291905050506115d9565b604051808215151515815260200191505060405180910390f35b34801561055f57600080fd5b50610568611656565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105b657600080fd5b506105e360048036038101908080356000191690602001909291908035906020019092919050505061167c565b6040518082815260200191505060405180910390f35b34801561060557600080fd5b5061063a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611754565b005b34801561064857600080fd5b50610651611912565b604051808215151515815260200191505060405180910390f35b34801561067757600080fd5b506106ce6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611925565b60405180826000191660001916815260200191505060405180910390f35b3480156106f857600080fd5b50610701611b57565b005b34801561070f57600080fd5b506107326004803603810190808035600019169060200190929190505050611c59565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078057600080fd5b506107b160048036038101908080356000191690602001909291908035600019169060200190929190505050611cb5565b6040518082815260200191505060405180910390f35b3480156107d357600080fd5b506107dc611d0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082a57600080fd5b5061085b60048036038101908080356000191690602001909291908035600019169060200190929190505050611d35565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108a957600080fd5b506108cc6004803603810190808035600019169060200190929190505050611daf565b60405180826000191660001916815260200191505060405180910390f35b3480156108f657600080fd5b506108ff611deb565b005b34801561090d57600080fd5b50610916611eab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561096457600080fd5b50610991600480360381019080803560001916906020019092919080359060200190929190505050611ed0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109d15780820151818401526020810190506109b6565b50505050905090810190601f1680156109fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a1857600080fd5b50610a4960048036038101908080356000191690602001909291908035600019169060200190929190505050611fa2565b604051808215151515815260200191505060405180910390f35b348015610a6f57600080fd5b50610a926004803603810190808035600019169060200190929190505050612009565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ae057600080fd5b50610b15600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612065565b005b348015610b2357600080fd5b50610b466004803603810190808035600019169060200190929190505050612104565b6040518082815260200191505060405180910390f35b348015610b6857600080fd5b50610b9960048036038101908080356000191690602001909291908035600019169060200190929190505050612140565b6040518082815260200191505060405180910390f35b348015610bbb57600080fd5b50610bc461219a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c1257600080fd5b50610d45600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121c0565b60405180826000191660001916815260200191505060405180910390f35b348015610d6f57600080fd5b50610d926004803603810190808035600019169060200190929190505050612c2d565b6040518082815260200191505060405180910390f35b348015610db457600080fd5b50610deb60048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050612c69565b6040518082815260200191505060405180910390f35b348015610e0d57600080fd5b50610e42600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d64565b005b348015610e5057600080fd5b50610e59612e03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ea757600080fd5b50610eca6004803603810190808035600019169060200190929190505050612e29565b604051808215151515815260200191505060405180910390f35b348015610ef057600080fd5b50610ef9612eb0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f4757600080fd5b50610f6a6004803603810190808035600019169060200190929190505050612ed6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fb857600080fd5b50610fe960048036038101908080356000191690602001909291908035600019169060200190929190505050612f32565b604051808215151515815260200191505060405180910390f35b34801561100f57600080fd5b50611044600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612feb565b005b34801561105257600080fd5b506110c5600480360381019080803560001916906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061308a565b005b3480156110d357600080fd5b50611108600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130dc565b005b34801561111657600080fd5b5061116d6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050613143565b60405180826000191660001916815260200191505060405180910390f35b34801561119757600080fd5b506111ba6004803603810190808035600019169060200190929190505050613234565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156111fa5780820151818401526020810190506111df565b50505050905090810190601f1680156112275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060088281548110151561124657fe5b90600052602060002001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b357600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061130282612e29565b151561130d57600080fd5b60066000836000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ae57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60088181548110151561140157fe5b906000526020600020016000915090505481565b600061142083612e29565b151561142b57600080fd5b600660008460001916600019168152602001908152602001600020600a01600083815260200190815260200160002054905092915050565b600061146e82612e29565b151561147957600080fd5b60066000836000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006114ca82612e29565b15156114d557600080fd5b60066000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157657600080fd5b600060149054906101000a900460ff16151561159157600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60006115e433611754565b6115ee8484612f32565b15156115f957600080fd5b816006600086600019166000191681526020019081526020016000206009016000856000191660001916815260200190815260200160002060030160006101000a81548160ff021916908315150217905550600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061168733611754565b600073ffffffffffffffffffffffffffffffffffffffff1660066000856000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561170157600080fd5b81600660008560001916600019168152602001908152602001600020600c0160008282540192505081905550600660008460001916600019168152602001908152602001600020600c0154905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806117fd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806118555750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806118ad5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b8061190457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b151561190f57600080fd5b50565b600060149054906101000a900460ff1681565b600061192f6133ee565b600061193a33611754565b600073ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156119b457600080fd5b6080604051908101604052808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020016000151581525091506119fd87878787613143565b9050600073ffffffffffffffffffffffffffffffffffffffff166006600089600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a9457600080fd5b816006600089600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050508092505050949350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bb257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611c6482612e29565b1515611c6f57600080fd5b60066000836000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611cc18383612f32565b1515611ccc57600080fd5b6006600084600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060010154905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d418383612f32565b1515611d4c57600080fd5b6006600084600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6000611dba82612e29565b1515611dc557600080fd5b600660008360001916600019168152602001908152602001600020600501549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e4657600080fd5b600060149054906101000a900460ff16151515611e6257600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600660008460001916600019168152602001908152602001600020600b0160008381526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f955780601f10611f6a57610100808354040283529160200191611f95565b820191906000526020600020905b815481529060010190602001808311611f7857829003601f168201915b5050505050905092915050565b6000611fae8383612f32565b1515611fb957600080fd5b6006600084600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060030160009054906101000a900460ff16905092915050565b600061201482612e29565b151561201f57600080fd5b60066000836000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120c057600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061210f82612e29565b151561211a57600080fd5b600660008360001916600019168152602001908152602001600020600c01549050919050565b600061214c8383612f32565b151561215757600080fd5b6006600084600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060020154905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121ca61342f565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67fcc9d8d6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561228957600080fd5b505af115801561229d573d6000803e3d6000fd5b505050506040513d60208110156122b357600080fd5b810190808051906020019092919050505015156122cf57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67fcc9d8c6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561238c57600080fd5b505af11580156123a0573d6000803e3d6000fd5b505050506040513d60208110156123b657600080fd5b810190808051906020019092919050505015156123d257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67fcc9d8a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561248f57600080fd5b505af11580156124a3573d6000803e3d6000fd5b505050506040513d60208110156124b957600080fd5b810190808051906020019092919050505015156124d557600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67fcc9d896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561259257600080fd5b505af11580156125a6573d6000803e3d6000fd5b505050506040513d60208110156125bc57600080fd5b810190808051906020019092919050505015156125d857600080fd5b610140604051908101604052808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff168152602001886000191681526020018781526020014281526020018673ffffffffffffffffffffffffffffffffffffffff168152602001600081525091508b8b8b8b8b8b8b338b604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401856000191660001916815260200184805190602001908083835b60208310151561283e5780518252602082019150602081019050602083039250612819565b6001836020036101000a0380198251168184511680821785525050505050509050018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156128f657805182526020820191506020810190506020830392506128d1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600073ffffffffffffffffffffffffffffffffffffffff1660066000836000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561299e57600080fd5b8160066000836000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005019060001916905560c0820151816006019080519060200190612b4992919061350a565b5060e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012082015181600c015590505060088190806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055507f3e3f1562581d79765962e32ff89b9793d9b8feccbab14ae907be9a320c2dccf88160405180826000191660001916815260200191505060405180910390a180925050509998505050505050505050565b6000612c3882612e29565b1515612c4357600080fd5b600660008360001916600019168152602001908152602001600020600701549050919050565b6000612c7433611754565b600073ffffffffffffffffffffffffffffffffffffffff1660066000866000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612cee57600080fd5b81600660008660001916600019168152602001908152602001600020600a01600085815260200190815260200160002060008282540192505081905550600660008560001916600019168152602001908152602001600020600a0160008481526020019081526020016000205490509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dbf57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff1660066000846000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612ea65760009050612eab565b600190505b919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612ee182612e29565b1515612eec57600080fd5b60066000836000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000612f3d83612e29565b1515612f4857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166006600085600019166000191681526020019081526020016000206009016000846000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612fe05760009050612fe5565b600190505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561304657600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61309333611754565b80600660008560001916600019168152602001908152602001600020600b01600084815260200190815260200160002090805190602001906130d692919061358a565b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561313757600080fd5b613140816132f4565b50565b600084848484436040516020018086600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401848152602001838152602001828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156131fd57805182526020820191506020810190506020830392506131d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b60606006600083600019166000191681526020019081526020016000206006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132e85780601f106132bd576101008083540402835291602001916132e8565b820191906000526020600020905b8154815290600101906020018083116132cb57829003601f168201915b50505050509050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561333057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b608060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000151581525090565b61014060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600080191681526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061354b57805160ff1916838001178555613579565b82800160010185558215613579579182015b8281111561357857825182559160200191906001019061355d565b5b509050613586919061360a565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106135cb57805160ff19168380011785556135f9565b828001600101855582156135f9579182015b828111156135f85782518255916020019190600101906135dd565b5b509050613606919061360a565b5090565b61362c91905b80821115613628576000816000905550600101613610565b5090565b905600a165627a7a723058207e5a2c941c08b2188e47d3f6c299333810d8390b5612e8ed08be48ed78c757cc0029",
  "deployedBytecode": "0x60806040526004361061021a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063061e494f1461021f57806308fb09701461026857806314715bcc146102ab578063171f1af11461031c57806322af00fa1461035f5780632659a074146103a857806330cdb40d146103f75780633a8100d1146104685780633f4ba83a146104d957806341b273bb146104f05780634c98ee7b146105535780634fc2c76c146105aa57806351b699cd146105f95780635c975abb1461063c5780635faa7cee1461066b578063715018a6146106ec5780637171e757146107035780637d95ff891461077457806380fabc91146107c757806381bf37021461081e578063825074521461089d5780638456cb59146108ea5780638da5cb5b1461090157806391061d6f146109585780639d5e693814610a0c578063ac21e31314610a63578063adfdeef914610ad4578063afc2779114610b17578063b2aa5d0c14610b5c578063b50cbd9f14610baf578063b67265bd14610c06578063b87822bd14610d63578063b90a414914610da8578063bad07ee714610e01578063ca033e7d14610e44578063d8818ad914610e9b578063dd943d0414610ee4578063de1028e114610f3b578063e564659714610fac578063e7ae81f714611003578063e91e48da14611046578063f2fde38b146110c7578063f61fdeb81461110a578063f78bdec61461118b575b600080fd5b34801561022b57600080fd5b5061024a60048036038101908080359060200190929190505050611235565b60405180826000191660001916815260200191505060405180910390f35b34801561027457600080fd5b506102a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611258565b005b3480156102b757600080fd5b506102da60048036038101908080356000191690602001909291905050506112f7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032857600080fd5b5061035d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611353565b005b34801561036b57600080fd5b5061038a600480360381019080803590602001909291905050506113f2565b60405180826000191660001916815260200191505060405180910390f35b3480156103b457600080fd5b506103e1600480360381019080803560001916906020019092919080359060200190929190505050611415565b6040518082815260200191505060405180910390f35b34801561040357600080fd5b506104266004803603810190808035600019169060200190929190505050611463565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047457600080fd5b5061049760048036038101908080356000191690602001909291905050506114bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e557600080fd5b506104ee61151b565b005b3480156104fc57600080fd5b50610539600480360381019080803560001916906020019092919080356000191690602001909291908035151590602001909291905050506115d9565b604051808215151515815260200191505060405180910390f35b34801561055f57600080fd5b50610568611656565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105b657600080fd5b506105e360048036038101908080356000191690602001909291908035906020019092919050505061167c565b6040518082815260200191505060405180910390f35b34801561060557600080fd5b5061063a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611754565b005b34801561064857600080fd5b50610651611912565b604051808215151515815260200191505060405180910390f35b34801561067757600080fd5b506106ce6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611925565b60405180826000191660001916815260200191505060405180910390f35b3480156106f857600080fd5b50610701611b57565b005b34801561070f57600080fd5b506107326004803603810190808035600019169060200190929190505050611c59565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078057600080fd5b506107b160048036038101908080356000191690602001909291908035600019169060200190929190505050611cb5565b6040518082815260200191505060405180910390f35b3480156107d357600080fd5b506107dc611d0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082a57600080fd5b5061085b60048036038101908080356000191690602001909291908035600019169060200190929190505050611d35565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108a957600080fd5b506108cc6004803603810190808035600019169060200190929190505050611daf565b60405180826000191660001916815260200191505060405180910390f35b3480156108f657600080fd5b506108ff611deb565b005b34801561090d57600080fd5b50610916611eab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561096457600080fd5b50610991600480360381019080803560001916906020019092919080359060200190929190505050611ed0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109d15780820151818401526020810190506109b6565b50505050905090810190601f1680156109fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a1857600080fd5b50610a4960048036038101908080356000191690602001909291908035600019169060200190929190505050611fa2565b604051808215151515815260200191505060405180910390f35b348015610a6f57600080fd5b50610a926004803603810190808035600019169060200190929190505050612009565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ae057600080fd5b50610b15600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612065565b005b348015610b2357600080fd5b50610b466004803603810190808035600019169060200190929190505050612104565b6040518082815260200191505060405180910390f35b348015610b6857600080fd5b50610b9960048036038101908080356000191690602001909291908035600019169060200190929190505050612140565b6040518082815260200191505060405180910390f35b348015610bbb57600080fd5b50610bc461219a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c1257600080fd5b50610d45600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121c0565b60405180826000191660001916815260200191505060405180910390f35b348015610d6f57600080fd5b50610d926004803603810190808035600019169060200190929190505050612c2d565b6040518082815260200191505060405180910390f35b348015610db457600080fd5b50610deb60048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050612c69565b6040518082815260200191505060405180910390f35b348015610e0d57600080fd5b50610e42600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d64565b005b348015610e5057600080fd5b50610e59612e03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ea757600080fd5b50610eca6004803603810190808035600019169060200190929190505050612e29565b604051808215151515815260200191505060405180910390f35b348015610ef057600080fd5b50610ef9612eb0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f4757600080fd5b50610f6a6004803603810190808035600019169060200190929190505050612ed6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fb857600080fd5b50610fe960048036038101908080356000191690602001909291908035600019169060200190929190505050612f32565b604051808215151515815260200191505060405180910390f35b34801561100f57600080fd5b50611044600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612feb565b005b34801561105257600080fd5b506110c5600480360381019080803560001916906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061308a565b005b3480156110d357600080fd5b50611108600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130dc565b005b34801561111657600080fd5b5061116d6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050613143565b60405180826000191660001916815260200191505060405180910390f35b34801561119757600080fd5b506111ba6004803603810190808035600019169060200190929190505050613234565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156111fa5780820151818401526020810190506111df565b50505050905090810190601f1680156112275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060088281548110151561124657fe5b90600052602060002001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b357600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061130282612e29565b151561130d57600080fd5b60066000836000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ae57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60088181548110151561140157fe5b906000526020600020016000915090505481565b600061142083612e29565b151561142b57600080fd5b600660008460001916600019168152602001908152602001600020600a01600083815260200190815260200160002054905092915050565b600061146e82612e29565b151561147957600080fd5b60066000836000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006114ca82612e29565b15156114d557600080fd5b60066000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157657600080fd5b600060149054906101000a900460ff16151561159157600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60006115e433611754565b6115ee8484612f32565b15156115f957600080fd5b816006600086600019166000191681526020019081526020016000206009016000856000191660001916815260200190815260200160002060030160006101000a81548160ff021916908315150217905550600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061168733611754565b600073ffffffffffffffffffffffffffffffffffffffff1660066000856000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561170157600080fd5b81600660008560001916600019168152602001908152602001600020600c0160008282540192505081905550600660008460001916600019168152602001908152602001600020600c0154905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806117fd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806118555750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806118ad5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b8061190457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b151561190f57600080fd5b50565b600060149054906101000a900460ff1681565b600061192f6133ee565b600061193a33611754565b600073ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156119b457600080fd5b6080604051908101604052808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020016000151581525091506119fd87878787613143565b9050600073ffffffffffffffffffffffffffffffffffffffff166006600089600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a9457600080fd5b816006600089600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050508092505050949350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bb257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611c6482612e29565b1515611c6f57600080fd5b60066000836000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611cc18383612f32565b1515611ccc57600080fd5b6006600084600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060010154905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d418383612f32565b1515611d4c57600080fd5b6006600084600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6000611dba82612e29565b1515611dc557600080fd5b600660008360001916600019168152602001908152602001600020600501549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e4657600080fd5b600060149054906101000a900460ff16151515611e6257600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600660008460001916600019168152602001908152602001600020600b0160008381526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f955780601f10611f6a57610100808354040283529160200191611f95565b820191906000526020600020905b815481529060010190602001808311611f7857829003601f168201915b5050505050905092915050565b6000611fae8383612f32565b1515611fb957600080fd5b6006600084600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060030160009054906101000a900460ff16905092915050565b600061201482612e29565b151561201f57600080fd5b60066000836000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120c057600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061210f82612e29565b151561211a57600080fd5b600660008360001916600019168152602001908152602001600020600c01549050919050565b600061214c8383612f32565b151561215757600080fd5b6006600084600019166000191681526020019081526020016000206009016000836000191660001916815260200190815260200160002060020154905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121ca61342f565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67fcc9d8d6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561228957600080fd5b505af115801561229d573d6000803e3d6000fd5b505050506040513d60208110156122b357600080fd5b810190808051906020019092919050505015156122cf57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67fcc9d8c6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561238c57600080fd5b505af11580156123a0573d6000803e3d6000fd5b505050506040513d60208110156123b657600080fd5b810190808051906020019092919050505015156123d257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67fcc9d8a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561248f57600080fd5b505af11580156124a3573d6000803e3d6000fd5b505050506040513d60208110156124b957600080fd5b810190808051906020019092919050505015156124d557600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67fcc9d896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561259257600080fd5b505af11580156125a6573d6000803e3d6000fd5b505050506040513d60208110156125bc57600080fd5b810190808051906020019092919050505015156125d857600080fd5b610140604051908101604052808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff168152602001886000191681526020018781526020014281526020018673ffffffffffffffffffffffffffffffffffffffff168152602001600081525091508b8b8b8b8b8b8b338b604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401856000191660001916815260200184805190602001908083835b60208310151561283e5780518252602082019150602081019050602083039250612819565b6001836020036101000a0380198251168184511680821785525050505050509050018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156128f657805182526020820191506020810190506020830392506128d1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600073ffffffffffffffffffffffffffffffffffffffff1660066000836000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561299e57600080fd5b8160066000836000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005019060001916905560c0820151816006019080519060200190612b4992919061350a565b5060e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012082015181600c015590505060088190806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055507f3e3f1562581d79765962e32ff89b9793d9b8feccbab14ae907be9a320c2dccf88160405180826000191660001916815260200191505060405180910390a180925050509998505050505050505050565b6000612c3882612e29565b1515612c4357600080fd5b600660008360001916600019168152602001908152602001600020600701549050919050565b6000612c7433611754565b600073ffffffffffffffffffffffffffffffffffffffff1660066000866000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612cee57600080fd5b81600660008660001916600019168152602001908152602001600020600a01600085815260200190815260200160002060008282540192505081905550600660008560001916600019168152602001908152602001600020600a0160008481526020019081526020016000205490509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dbf57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff1660066000846000191660001916815260200190815260200160002060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612ea65760009050612eab565b600190505b919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612ee182612e29565b1515612eec57600080fd5b60066000836000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000612f3d83612e29565b1515612f4857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166006600085600019166000191681526020019081526020016000206009016000846000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612fe05760009050612fe5565b600190505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561304657600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61309333611754565b80600660008560001916600019168152602001908152602001600020600b01600084815260200190815260200160002090805190602001906130d692919061358a565b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561313757600080fd5b613140816132f4565b50565b600084848484436040516020018086600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401848152602001838152602001828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156131fd57805182526020820191506020810190506020830392506131d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050949350505050565b60606006600083600019166000191681526020019081526020016000206006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132e85780601f106132bd576101008083540402835291602001916132e8565b820191906000526020600020905b8154815290600101906020018083116132cb57829003601f168201915b50505050509050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561333057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b608060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000151581525090565b61014060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600080191681526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061354b57805160ff1916838001178555613579565b82800160010185558215613579579182015b8281111561357857825182559160200191906001019061355d565b5b509050613586919061360a565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106135cb57805160ff19168380011785556135f9565b828001600101855582156135f9579182015b828111156135f85782518255916020019190600101906135dd565b5b509050613606919061360a565b5090565b61362c91905b80821115613628576000816000905550600101613610565b5090565b905600a165627a7a723058207e5a2c941c08b2188e47d3f6c299333810d8390b5612e8ed08be48ed78c757cc0029",
  "sourceMap": "522:10712:10:-;;;268:5:28;247:26;;;;;;;;;;;;;;;;;;;;735:362:10;8:9:-1;5:2;;;30:1;27;20:12;5:2;735:362:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:30;567:5;;:18;;;;;;;;;;;;;;;;;;945:14:10;915:13;;:45;;;;;;;;;;;;;;;;;;982:10;970:9;;:22;;;;;;;;;;;;;;;;;;1016:12;1002:11;;:26;;;;;;;;;;;;;;;;;;1050:10;1038:9;;:22;;;;;;;;;;;;;;;;;;1081:9;1070:8;;:20;;;;;;;;;;;;;;;;;;735:362;;;;;522:10712;;;;;;",
  "deployedSourceMap": "522:10712:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3252:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3252:94:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2008:114:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2008:114:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;6638:217:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6638:217:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1178:118:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1178:118:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;707:21:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;707:21:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8520:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8520:249:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7083:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7083:198:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6419:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6419:213:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;838:92:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:92:28;;;;;;10617:349:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10617:349:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;173:24:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;173:24:24;;;;;;;;;;;;;;;;;;;;;;;;;;;4347:325:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4347:325:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10972:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10972:260:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:26:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:28;;;;;;;;;;;;;;;;;;;;;;;;;;;3415:731:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3415:731:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:30;;;;;;7287:210:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7287:210:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9277:286;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9277:286:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;235:24:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;235:24:24;;;;;;;;;;;;;;;;;;;;;;;;;;;8982:289:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8982:289:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7503:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7503:208:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:90:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:90:28;;;;;;238:20:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:30;;;;;;;;;;;;;;;;;;;;;;;;;;;8775:201:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8775:201:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8775:201:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9867:290;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9867:290:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8092:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8092:204:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1185:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1185:129:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;8302:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8302:212:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9569:292;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9569:292:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:34:10;;;;;;;;;;;;;;;;;;;;;;;;;;;1869:1377;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1869:1377:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7883:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7883:203:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4952:366;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4952:366:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1457:126:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1457:126:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;265:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:23:24;;;;;;;;;;;;;;;;;;;;;;;;;;;10163:174:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10163:174:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:26:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:26:24;;;;;;;;;;;;;;;;;;;;;;;;;;;6861:216:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6861:216:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10343:268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10343:268:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1738:118:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1738:118:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;6185:213:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6185:213:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;5776:403:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5776:403:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7717:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7717:160:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7717:160:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3252:94;3301:7;3327:4;3332:6;3327:12;;;;;;;;;;;;;;;;;;3320:19;;3252:94;;;:::o;2008:114:24:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2106:9:24;2095:8;;:20;;;;;;;;;;;;;;;;;;2008:114;:::o;6638:217:10:-;6744:7;6775:19;6785:8;6775:9;:19::i;:::-;6767:28;;;;;;;;6813:11;:21;6825:8;6813:21;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;6806:42;;6638:217;;;:::o;1178:118:24:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1279:10:24;1267:9;;:22;;;;;;;;;;;;;;;;;;1178:118;:::o;707:21:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8520:249::-;8648:4;8676:19;8686:8;8676:9;:19::i;:::-;8668:28;;;;;;;;8714:11;:21;8726:8;8714:21;;;;;;;;;;;;;;;;;:39;;:48;8754:7;8714:48;;;;;;;;;;;;8707:55;;8520:249;;;;:::o;7083:198::-;7172:7;7203:19;7213:8;7203:9;:19::i;:::-;7195:28;;;;;;;;7241:11;:21;7253:8;7241:21;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;7234:40;;7083:198;;;:::o;6419:213::-;6523:7;6554:19;6564:8;6554:9;:19::i;:::-;6546:28;;;;;;;;6592:11;:21;6604:8;6592:21;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;6585:40;;6419:213;;;:::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;10617:349:10:-;10789:4;1137:24;1150:10;1137:12;:24::i;:::-;10817:41;10833:8;10843:14;10817:15;:41::i;:::-;10809:50;;;;;;;;10929:9;10869:11;:21;10881:8;10869:21;;;;;;;;;;;;;;;;;:32;;:48;10902:14;10869:48;;;;;;;;;;;;;;;;;:57;;;:69;;;;;;;;;;;;;;;;;;10955:4;10948:11;;10617:349;;;;;:::o;173:24:24:-;;;;;;;;;;;;;:::o;4347:325:10:-;4482:4;1137:24;1150:10;1137:12;:24::i;:::-;4551:1;4510:43;;:11;:21;4522:8;4510:21;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;;4502:52;;;;;;;;4605:7;4565:11;:21;4577:8;4565:21;;;;;;;;;;;;;;;;;:36;;;:47;;;;;;;;;;;4629:11;:21;4641:8;4629:21;;;;;;;;;;;;;;;;;:36;;;4622:43;;4347:325;;;;:::o;10972:260::-;11065:9;;;;;;;;;;;11054:20;;:7;:20;;;:58;;;;11101:11;;;;;;;;;;;11090:22;;:7;:22;;;11054:58;:94;;;;11139:9;;;;;;;;;;;11128:20;;:7;:20;;;11054:94;:129;;;;11175:8;;;;;;;;;;;11164:19;;:7;:19;;;11054:129;:161;;;;11210:5;;;;;;;;;;;11199:16;;:7;:16;;;11054:161;11033:192;;;;;;;;10972:260;:::o;247:26:28:-;;;;;;;;;;;;;:::o;3415:731:10:-;3595:7;3681:21;;:::i;:::-;3817:22;1137:24;1150:10;1137:12;:24::i;:::-;3667:1;3626:43;;:11;:21;3638:8;3626:21;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;;3618:52;;;;;;;;3705:101;;;;;;;;;3728:7;3705:101;;;;;;3749:7;3705:101;;;;3770:7;3705:101;;;;3791:5;3705:101;;;;;3681:125;;3842:111;3872:8;3894:7;3915;3936;3842:16;:111::i;:::-;3817:136;;4039:1;3972:69;;:11;:21;3984:8;3972:21;;;;;;;;;;;;;;;;;:32;;:48;4005:14;3972:48;;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;:69;;;3964:78;;;;;;;;4103:4;4052:11;:21;4064:8;4052:21;;;;;;;;;;;;;;;;;:32;;:48;4085:14;4052:48;;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4125:14;4118:21;;3415:731;;;;;;;;:::o;827:111:30:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;7287:210:10:-;7389:7;7420:19;7430:8;7420:9;:19::i;:::-;7412:28;;;;;;;;7458:11;:21;7470:8;7458:21;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;7451:39;;7287:210;;;:::o;9277:286::-;9413:4;9441:41;9457:8;9467:14;9441:15;:41::i;:::-;9433:50;;;;;;;;9501:11;:21;9513:8;9501:21;;;;;;;;;;;;;;;;;:32;;:48;9534:14;9501:48;;;;;;;;;;;;;;;;;:55;;;9494:62;;9277:286;;;;:::o;235:24:24:-;;;;;;;;;;;;;:::o;8982:289:10:-;9118:7;9149:41;9165:8;9175:14;9149:15;:41::i;:::-;9141:50;;;;;;;;9209:11;:21;9221:8;9209:21;;;;;;;;;;;;;;;;;:32;;:48;9242:14;9209:48;;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;9202:62;;8982:289;;;;:::o;7503:208::-;7604:7;7635:19;7645:8;7635:9;:19::i;:::-;7627:28;;;;;;;;7673:11;:21;7685:8;7673:21;;;;;;;;;;;;;;;;;:31;;;7666:38;;7503: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;238:20:30:-;;;;;;;;;;;;;:::o;8775:201:10:-;8897:6;8926:11;:21;8938:8;8926:21;;;;;;;;;;;;;;;;;:34;;:43;8961:7;8926:43;;;;;;;;;;;8919:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8775:201;;;;:::o;9867:290::-;10005:4;10033:41;10049:8;10059:14;10033:15;:41::i;:::-;10025:50;;;;;;;;10093:11;:21;10105:8;10093:21;;;;;;;;;;;;;;;;;:32;;:48;10126:14;10093:48;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;10086:64;;9867:290;;;;:::o;8092:204::-;8191:7;8222:19;8232:8;8222:9;:19::i;:::-;8214:28;;;;;;;;8260:11;:21;8272:8;8260:21;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;8253:36;;8092:204;;;:::o;1185:129::-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1292:14:10;1262:13;;:45;;;;;;;;;;;;;;;;;;1185:129;:::o;8302:212::-;8405:4;8433:19;8443:8;8433:9;:19::i;:::-;8425:28;;;;;;;;8471:11;:21;8483:8;8471:21;;;;;;;;;;;;;;;;;:36;;;8464:43;;8302:212;;;:::o;9569:292::-;9708:4;9736:41;9752:8;9762:14;9736:15;:41::i;:::-;9728:50;;;;;;;;9796:11;:21;9808:8;9796:21;;;;;;;;;;;;;;;;;:32;;:48;9829:14;9796:48;;;;;;;;;;;;;;;;;:58;;;9789:65;;9569:292;;;;:::o;666:34::-;;;;;;;;;;;;;:::o;1869:1377::-;2158:7;2431:22;;:::i;:::-;2726:13;2185;;;;;;;;;;;:30;;;2216:12;2185:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2185:44:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2185:44:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2185:44:10;;;;;;;;;;;;;;;;2177:53;;;;;;;;2248:13;;;;;;;;;;;:30;;;2279:14;2248:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2248:46:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2248:46:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2248:46:10;;;;;;;;;;;;;;;;2240:55;;;;;;;;2313:13;;;;;;;;;;;:30;;;2344:12;2313:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2313:44:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2313:44:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2313:44:10;;;;;;;;;;;;;;;;2305:53;;;;;;;;2376:13;;;;;;;;;;;:30;;;2407:11;2376:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2376:43:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2376:43:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2376:43:10;;;;;;;;;;;;;;;;2368:52;;;;;;;;2456:260;;;;;;;;;2478:12;2456:260;;;;;;2504:14;2456:260;;;;;;2532:14;2456:260;;;;;;2560:12;2456:260;;;;;;2586:11;2456:260;;;;;;2611:10;2456:260;;;;;;;2635:6;2456:260;;;;2655:15;2456:260;;;;2684:7;2456:260;;;;;;2705:1;2456:260;;;2431:285;;2799:12;2829:14;2861;2893:12;2923:11;2952:10;2980:6;3004:10;3032:5;2765:286;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;2765:286:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2765:286:10;;;2742:319;;;;;;;;;;;;;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;;;2742:319:10;;;;;;;;;;;;;;;;2726:335;;3117:1;3079:40;;:11;:18;3091:5;3079:18;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;:40;;;3071:49;;;;;;;;3152:6;3131:11;:18;3143:5;3131:18;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3168:4;3178:5;3168:16;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3168:16:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3199:18;3211:5;3199:18;;;;;;;;;;;;;;;;;;;;;;;;3234:5;3227:12;;1869:1377;;;;;;;;;;;;;:::o;7883:203::-;7983:4;8011:19;8021:8;8011:9;:19::i;:::-;8003:28;;;;;;;;8049:11;:21;8061:8;8049:21;;;;;;;;;;;;;;;;;:30;;;8042:37;;7883:203;;;:::o;4952:366::-;5103:4;1137:24;1150:10;1137:12;:24::i;:::-;5172:1;5131:43;;:11;:21;5143:8;5131:21;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;;5123:52;;;;;;;;5238:7;5186:11;:21;5198:8;5186:21;;;;;;;;;;;;;;;;;:39;;:48;5226:7;5186:48;;;;;;;;;;;;:59;;;;;;;;;;;5263:11;:21;5275:8;5263:21;;;;;;;;;;;;;;;;;:39;;:48;5303:7;5263:48;;;;;;;;;;;;5256:55;;4952:366;;;;;:::o;1457:126:24:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1564:12:24;1550:11;;:26;;;;;;;;;;;;;;;;;;1457:126;:::o;265:23::-;;;;;;;;;;;;;:::o;10163:174:10:-;10220:4;10281:1;10240:43;;:11;:21;10252:8;10240:21;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;10236:73;;;10304:5;10297:12;;;;10236:73;10326:4;10319:11;;10163:174;;;;:::o;203:26:24:-;;;;;;;;;;;;;:::o;6861:216:10:-;6966:7;6997:19;7007:8;6997:9;:19::i;:::-;6989:28;;;;;;;;7035:11;:21;7047:8;7035:21;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;7028:42;;6861:216;;;:::o;10343:268::-;10430:4;10454:19;10464:8;10454:9;:19::i;:::-;10446:28;;;;;;;;10555:1;10488:69;;:11;:21;10500:8;10488:21;;;;;;;;;;;;;;;;;:32;;:48;10521:14;10488:48;;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;:69;;;10484:99;;;10578:5;10571:12;;;;10484:99;10600:4;10593:11;;10343:268;;;;;:::o;1738:118:24:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1839:10:24;1827:9;;:22;;;;;;;;;;;;;;;;;;1738:118;:::o;6185:213:10:-;1137:24;1150:10;1137:12;:24::i;:::-;6385:6;6339:11;:21;6351:8;6339:21;;;;;;;;;;;;;;;;;:34;;:43;6374:7;6339:43;;;;;;;;;;;:52;;;;;;;;;;;;:::i;:::-;;6185:213;;;:::o;1100:103:30:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;5776:403:10:-;5947:7;6034:8;6060:7;6085;6110;6135:12;6000:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6000:161:10;;;5977:194;;;;;;;;;;;;;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;;;5977:194:10;;;;;;;;;;;;;;;;5970:201;;5776:403;;;;;;:::o;7717:160::-;7814:6;7843:11;:21;7855:8;7843:21;;;;;;;;;;;;;;;;;:27;;7836:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7717:160;;;:::o;1338:171:30:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;522:10712:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.24;\n\n// Internal\nimport \"./RegistryStorage.sol\";\nimport \"./ProxyRegistry.sol\";\n// External\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\n/**\n * The registry is a Eternal Storage contract that saves all the data for the\n * bet protocol. The rest of the contracts will communicate with this contract\n * with getters and setters to modify the data. They will be the interface for\n * for the protocol.\n *\n * Author: Carlos Gonzalez -- Github: carlosgj94\n */\n/** @title Bet BetRegistry. */\ncontract BetRegistry is RegistryStorage {\n    using SafeMath for uint;\n\n    // Events\n    event LogBetEntry(bytes32 _hash);\n\n    // Storage\n    ProxyRegistry public proxyRegistry;\n\n    bytes32[] public bets;\n\n    constructor(\n        address _proxyRegistry,\n        address _betKernel,\n        address _betPayments,\n        address _betOracle,\n        address _betTerms\n    ) public {\n        proxyRegistry = ProxyRegistry(_proxyRegistry);\n        betKernel = _betKernel;\n        betPayments = _betPayments;\n        betOracle = _betOracle;\n        betTerms = _betTerms;\n    }\n\n    modifier onlyAuthorised {\n        isAuthorised(msg.sender);\n        _;\n    }\n\n    function setProxyRegistry(address _proxyRegistry) public onlyOwner {\n        proxyRegistry = ProxyRegistry(_proxyRegistry);\n    }\n\n    /**\n     * @dev Function to create bets in the registry\n     * @param _kernelProxy address Direction of the kernel proxy contract\n     * @param _paymentsProxy address Direction of the payments proxy contract\n     * @param _oracleProxy address Direction of the oracle proxy contract\n     * @param _termsProxy address Address of the terms proxy contract\n     * @param _termsHash bytes32 Address of the hash terms of the bet\n     * @param _salt uint random number to provide a unique hash\n     * @return bytes32 the that identifies the bet\n     */\n    function createBet(\n        address _kernelProxy,\n        address _paymentsProxy,\n        address _paymentsToken,\n        address _oracleProxy,\n        address _termsProxy,\n        bytes32 _termsHash,\n        string _title,\n        address _sender,\n        uint _salt\n    ) public returns(bytes32) {\n        require(proxyRegistry.addressInProxies(_kernelProxy));\n        require(proxyRegistry.addressInProxies(_paymentsProxy));\n        require(proxyRegistry.addressInProxies(_oracleProxy));\n        require(proxyRegistry.addressInProxies(_termsProxy));\n\n        BetEntry memory _entry = BetEntry(\n            _kernelProxy,\n            _paymentsProxy,\n            _paymentsToken,\n            _oracleProxy,\n            _termsProxy,\n            _termsHash,\n            _title,\n            block.timestamp,\n            _sender,\n            0\n        );\n        bytes32 _hash = keccak256(\n            abi.encodePacked(\n                _kernelProxy,\n                _paymentsProxy,\n                _paymentsToken,\n                _oracleProxy,\n                _termsProxy,\n                _termsHash,\n                _title,\n                msg.sender,\n                _salt\n            )\n        );\n        require(betRegistry[_hash].creator == address(0));\n\n        betRegistry[_hash] = _entry;\n        bets.push(_hash);\n        emit LogBetEntry(_hash);\n        return _hash;\n    }\n\n    function getBet(uint _index) public view returns(bytes32) {\n        return bets[_index];\n    }\n\n    // Setters to place a bet\n    // These are authorised only\n    function insertPlayerBet(\n        bytes32 _betHash,\n        address _sender,\n        uint _option,\n        uint _number\n    )\n        public\n        onlyAuthorised\n        returns(bytes32)\n    {\n        require(betRegistry[_betHash].creator != address(0));\n\n        PlayerBet memory _bet = PlayerBet(\n            _sender,\n            _option,\n            _number,\n            false\n        );\n\n        bytes32 _playerBetHash = getPlayerBetHash(\n            _betHash,\n            _sender,\n            _option,\n            _number\n        );\n\n        require(betRegistry[_betHash].playerBets[_playerBetHash].player == address(0));\n        betRegistry[_betHash].playerBets[_playerBetHash] = _bet;\n\n        return _playerBetHash;\n    }\n\n    /**\n     * @dev Function that lets you add to the principal\n     * @param _betHash bytes32 the bet\n     * @param _number uint the amount to add\n     * @return uint the totalPrincipal\n     */\n    function addTotalPrincipal(\n        bytes32 _betHash,\n        uint _number\n    )\n        public\n        onlyAuthorised\n        returns(uint)\n    {\n        require(betRegistry[_betHash].creator != address(0));\n\n        betRegistry[_betHash].totalPrincipal += _number;\n        return betRegistry[_betHash].totalPrincipal;\n    }\n\n    /**\n     * @dev Function that lets you add to an option\n     * @param _betHash bytes32 of the bet you want to get\n     * @param _option uint the option you are betting on\n     * @param _number uint the amount to add\n     * @return uint the amount in that option\n     */\n    function addToOption(\n        bytes32 _betHash,\n        uint _option,\n        uint _number\n    )\n        public\n        onlyAuthorised\n        returns(uint)\n    {\n        require(betRegistry[_betHash].creator != address(0));\n\n        betRegistry[_betHash].principalInOption[_option] += _number;\n\n        return betRegistry[_betHash].principalInOption[_option];\n    }\n\n    /**\n     * @dev Function that returns the hash a bet would have\n     * @param _betHash bytes32 the hash of the bet where place play will happen\n     * @param _sender address the address that wants to bet\n     * @param _option uint the option they want to bet on\n     * @param _number uint the parameter of the bet. This depends if it is an\n     * ERC20 or ERC721 token\n     * @return bytes32 the hash of the bet the player is going to make\n     */\n    function getPlayerBetHash(\n        bytes32 _betHash,\n        address _sender,\n        uint _option,\n        uint _number\n    )\n        public\n        view\n        returns(bytes32)\n    {\n        return keccak256(\n            abi.encodePacked(\n                _betHash,\n                _sender,\n                _option,\n                _number,\n                block.number\n            )\n        );\n\n    }\n\n    function setOptionTitle (\n        bytes32 _betHash,\n        uint _option,\n        string _title\n    )\n        public\n        onlyAuthorised\n    {\n        betRegistry[_betHash].optionTitles[_option] = _title;\n    }\n\n    // Getters\n    function getBetKernelProxy(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns (address)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].kernelProxy;\n    }\n\n    function getBetPaymentsProxy(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns (address)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].paymentsProxy;\n    }\n\n    function getBetPaymentsToken(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns(address)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].paymentsToken;\n    }\n\n    function getBetOracleProxy(bytes32 _betHash)\n        public\n        view\n        returns(address)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].oracleProxy;\n    }\n\n    function getBetTermsProxy(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns(address)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].termsProxy;\n    }\n\n    function getBetTermsHash(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns(bytes32)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].termsHash;\n    }\n\n    function getBetTitle(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns(string)\n    {\n        return betRegistry[_betHash].title;\n    }\n\n    function getBetDatetime(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns(uint)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].datetime;\n    }\n\n    function getBetCreator(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns(address)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].creator;\n    }\n\n    function getTotalPrincipal(\n        bytes32 _betHash\n    )\n        public\n        view\n        returns(uint)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].totalPrincipal;\n    }\n\n    function getPrincipalInOption(\n        bytes32 _betHash,\n        uint _option\n    )\n        public\n        view\n        returns(uint)\n    {\n        require(betExists(_betHash));\n\n        return betRegistry[_betHash].principalInOption[_option];\n    }\n\n    function getOptionTitle(\n        bytes32 _betHash,\n        uint _option\n    )\n        public\n        view\n        returns(string)\n    {\n        return betRegistry[_betHash].optionTitles[_option];\n    }\n\n    function getPlayerBetPlayer(\n        bytes32 _betHash,\n        bytes32 _playerBetHash\n    )\n        public\n        view\n        returns(address)\n    {\n        require(playerBetExists(_betHash, _playerBetHash));\n\n        return betRegistry[_betHash].playerBets[_playerBetHash].player;\n    }\n\n    function getPlayerBetOption(\n        bytes32 _betHash,\n        bytes32 _playerBetHash\n    )\n        public\n        view\n        returns(uint)\n    {\n        require(playerBetExists(_betHash, _playerBetHash));\n\n        return betRegistry[_betHash].playerBets[_playerBetHash].option;\n    }\n\n    function getPlayerBetPrincipal(\n        bytes32 _betHash,\n        bytes32 _playerBetHash\n    )\n        public\n        view\n        returns(uint)\n    {\n        require(playerBetExists(_betHash, _playerBetHash));\n\n        return betRegistry[_betHash].playerBets[_playerBetHash].principal;\n    }\n\n    function getPlayerBetReturned(\n        bytes32 _betHash,\n        bytes32 _playerBetHash\n    )\n        public\n        view\n        returns(bool)\n    {\n        require(playerBetExists(_betHash, _playerBetHash));\n\n        return betRegistry[_betHash].playerBets[_playerBetHash].returned;\n    }\n\n    function betExists(bytes32 _betHash) public view returns(bool) {\n        if (betRegistry[_betHash].creator == address(0))\n            return false;\n        return true;\n    }\n\n    function playerBetExists(bytes32 _betHash, bytes32 _playerBetHash) public view returns(bool) {\n        require(betExists(_betHash));\n        if (betRegistry[_betHash].playerBets[_playerBetHash].player == address(0))\n            return false;\n        return true;\n    }\n\n    function setPlayerBetReturned(\n        bytes32 _betHash,\n        bytes32 _playerBetHash,\n        bool _returned\n    )\n        public\n        onlyAuthorised\n        returns(bool)\n    {\n        require(playerBetExists(_betHash, _playerBetHash));\n        betRegistry[_betHash].playerBets[_playerBetHash].returned = _returned;\n        return true;\n    }\n\n    function isAuthorised(address _sender) public view {\n        require(\n            _sender == betKernel ||\n            _sender == betPayments ||\n            _sender == betOracle ||\n            _sender == betTerms ||\n            _sender == owner\n        );\n    }\n}\n",
  "sourcePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/BetRegistry.sol",
  "ast": {
    "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/BetRegistry.sol",
    "exportedSymbols": {
      "BetRegistry": [
        2635
      ]
    },
    "id": 2636,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1800,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:10"
      },
      {
        "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/RegistryStorage.sol",
        "file": "./RegistryStorage.sol",
        "id": 1801,
        "nodeType": "ImportDirective",
        "scope": 2636,
        "sourceUnit": 3820,
        "src": "38:31:10",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/ProxyRegistry.sol",
        "file": "./ProxyRegistry.sol",
        "id": 1802,
        "nodeType": "ImportDirective",
        "scope": 2636,
        "sourceUnit": 3665,
        "src": "70:29:10",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 1803,
        "nodeType": "ImportDirective",
        "scope": 2636,
        "sourceUnit": 4268,
        "src": "112:59:10",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1804,
              "name": "RegistryStorage",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3819,
              "src": "546:15:10",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RegistryStorage_$3819",
                "typeString": "contract RegistryStorage"
              }
            },
            "id": 1805,
            "nodeType": "InheritanceSpecifier",
            "src": "546:15:10"
          }
        ],
        "contractDependencies": [
          3819,
          4173,
          4353
        ],
        "contractKind": "contract",
        "documentation": "@title Bet BetRegistry. ",
        "fullyImplemented": true,
        "id": 2635,
        "linearizedBaseContracts": [
          2635,
          3819,
          4173,
          4353
        ],
        "name": "BetRegistry",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1808,
            "libraryName": {
              "contractScope": null,
              "id": 1806,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4267,
              "src": "574:8:10",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$4267",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "568:24:10",
            "typeName": {
              "id": 1807,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "587:4:10",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1812,
            "name": "LogBetEntry",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1810,
                  "indexed": false,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1812,
                  "src": "630:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1809,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "630:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "629:15:10"
            },
            "src": "612:33:10"
          },
          {
            "constant": false,
            "id": 1814,
            "name": "proxyRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 2635,
            "src": "666:34:10",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
              "typeString": "contract ProxyRegistry"
            },
            "typeName": {
              "contractScope": null,
              "id": 1813,
              "name": "ProxyRegistry",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3664,
              "src": "666:13:10",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                "typeString": "contract ProxyRegistry"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1817,
            "name": "bets",
            "nodeType": "VariableDeclaration",
            "scope": 2635,
            "src": "707:21:10",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
              "typeString": "bytes32[]"
            },
            "typeName": {
              "baseType": {
                "id": 1815,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "707:7:10",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "id": 1816,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "707:9:10",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1852,
              "nodeType": "Block",
              "src": "905:192:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1834,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1830,
                      "name": "proxyRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1814,
                      "src": "915:13:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                        "typeString": "contract ProxyRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1832,
                          "name": "_proxyRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1819,
                          "src": "945:14:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1831,
                        "name": "ProxyRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3664,
                        "src": "931:13:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ProxyRegistry_$3664_$",
                          "typeString": "type(contract ProxyRegistry)"
                        }
                      },
                      "id": 1833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "931:29:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                        "typeString": "contract ProxyRegistry"
                      }
                    },
                    "src": "915:45:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                      "typeString": "contract ProxyRegistry"
                    }
                  },
                  "id": 1835,
                  "nodeType": "ExpressionStatement",
                  "src": "915:45:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1836,
                      "name": "betKernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3716,
                      "src": "970:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1837,
                      "name": "_betKernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1821,
                      "src": "982:10:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "970:22:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1839,
                  "nodeType": "ExpressionStatement",
                  "src": "970:22:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1840,
                      "name": "betPayments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3718,
                      "src": "1002:11:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1841,
                      "name": "_betPayments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1823,
                      "src": "1016:12:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1002:26:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1843,
                  "nodeType": "ExpressionStatement",
                  "src": "1002:26:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1844,
                      "name": "betOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3720,
                      "src": "1038:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1845,
                      "name": "_betOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1825,
                      "src": "1050:10:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1038:22:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1847,
                  "nodeType": "ExpressionStatement",
                  "src": "1038:22:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1850,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1848,
                      "name": "betTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3722,
                      "src": "1070:8:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1849,
                      "name": "_betTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1827,
                      "src": "1081:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1070:20:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1851,
                  "nodeType": "ExpressionStatement",
                  "src": "1070:20:10"
                }
              ]
            },
            "documentation": null,
            "id": 1853,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1828,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1819,
                  "name": "_proxyRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "756:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1818,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "756:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1821,
                  "name": "_betKernel",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "788:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1820,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "788:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1823,
                  "name": "_betPayments",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "816:20:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1822,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "816:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1825,
                  "name": "_betOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "846:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1824,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "846:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1827,
                  "name": "_betTerms",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "874:17:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1826,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "874:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "746:151:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 1829,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "905:0:10"
            },
            "scope": 2635,
            "src": "735:362:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1861,
              "nodeType": "Block",
              "src": "1127:52:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1856,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6095,
                          "src": "1150:3:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1150:10:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1855,
                      "name": "isAuthorised",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2634,
                      "src": "1137:12:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 1858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1137:24:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1859,
                  "nodeType": "ExpressionStatement",
                  "src": "1137:24:10"
                },
                {
                  "id": 1860,
                  "nodeType": "PlaceholderStatement",
                  "src": "1171:1:10"
                }
              ]
            },
            "documentation": null,
            "id": 1862,
            "name": "onlyAuthorised",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1854,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1127:0:10"
            },
            "src": "1103:76:10",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1875,
              "nodeType": "Block",
              "src": "1252:62:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1873,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1869,
                      "name": "proxyRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1814,
                      "src": "1262:13:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                        "typeString": "contract ProxyRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1871,
                          "name": "_proxyRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1864,
                          "src": "1292:14:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1870,
                        "name": "ProxyRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3664,
                        "src": "1278:13:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ProxyRegistry_$3664_$",
                          "typeString": "type(contract ProxyRegistry)"
                        }
                      },
                      "id": 1872,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1278:29:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                        "typeString": "contract ProxyRegistry"
                      }
                    },
                    "src": "1262:45:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                      "typeString": "contract ProxyRegistry"
                    }
                  },
                  "id": 1874,
                  "nodeType": "ExpressionStatement",
                  "src": "1262:45:10"
                }
              ]
            },
            "documentation": null,
            "id": 1876,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1867,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1866,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4301,
                  "src": "1242:9:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1242:9:10"
              }
            ],
            "name": "setProxyRegistry",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1865,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1864,
                  "name": "_proxyRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 1876,
                  "src": "1211:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1863,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1211:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1210:24:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 1868,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1252:0:10"
            },
            "scope": 2635,
            "src": "1185:129:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1990,
              "nodeType": "Block",
              "src": "2167:1079:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1902,
                            "name": "_kernelProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1878,
                            "src": "2216:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1900,
                            "name": "proxyRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1814,
                            "src": "2185:13:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                              "typeString": "contract ProxyRegistry"
                            }
                          },
                          "id": 1901,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressInProxies",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3663,
                          "src": "2185:30:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 1903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2185:44:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1899,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "2177:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2177:53:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1905,
                  "nodeType": "ExpressionStatement",
                  "src": "2177:53:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1909,
                            "name": "_paymentsProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1880,
                            "src": "2279:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1907,
                            "name": "proxyRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1814,
                            "src": "2248:13:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                              "typeString": "contract ProxyRegistry"
                            }
                          },
                          "id": 1908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressInProxies",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3663,
                          "src": "2248:30:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 1910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2248:46:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1906,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "2240:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2240:55:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1912,
                  "nodeType": "ExpressionStatement",
                  "src": "2240:55:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1916,
                            "name": "_oracleProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1884,
                            "src": "2344:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1914,
                            "name": "proxyRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1814,
                            "src": "2313:13:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                              "typeString": "contract ProxyRegistry"
                            }
                          },
                          "id": 1915,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressInProxies",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3663,
                          "src": "2313:30:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 1917,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2313:44:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1913,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "2305:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1918,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2305:53:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1919,
                  "nodeType": "ExpressionStatement",
                  "src": "2305:53:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1923,
                            "name": "_termsProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1886,
                            "src": "2407:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1921,
                            "name": "proxyRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1814,
                            "src": "2376:13:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                              "typeString": "contract ProxyRegistry"
                            }
                          },
                          "id": 1922,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressInProxies",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3663,
                          "src": "2376:30:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 1924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2376:43:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1920,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "2368:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2368:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1926,
                  "nodeType": "ExpressionStatement",
                  "src": "2368:52:10"
                },
                {
                  "assignments": [
                    1928
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1928,
                      "name": "_entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 1991,
                      "src": "2431:22:10",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_memory_ptr",
                        "typeString": "struct RegistryStorage.BetEntry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1927,
                        "name": "BetEntry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3757,
                        "src": "2431:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage_ptr",
                          "typeString": "struct RegistryStorage.BetEntry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1942,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1930,
                        "name": "_kernelProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1878,
                        "src": "2478:12:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1931,
                        "name": "_paymentsProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1880,
                        "src": "2504:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1932,
                        "name": "_paymentsToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1882,
                        "src": "2532:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1933,
                        "name": "_oracleProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1884,
                        "src": "2560:12:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1934,
                        "name": "_termsProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1886,
                        "src": "2586:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1935,
                        "name": "_termsHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1888,
                        "src": "2611:10:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1936,
                        "name": "_title",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "2635:6:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1937,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6085,
                          "src": "2655:5:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 1938,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2655:15:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1939,
                        "name": "_sender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1892,
                        "src": "2684:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2705:1:10",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 1929,
                      "name": "BetEntry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3757,
                      "src": "2456:8:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_BetEntry_$3757_storage_ptr_$",
                        "typeString": "type(struct RegistryStorage.BetEntry storage pointer)"
                      }
                    },
                    "id": 1941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2456:260:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_BetEntry_$3757_memory",
                      "typeString": "struct RegistryStorage.BetEntry memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2431:285:10"
                },
                {
                  "assignments": [
                    1944
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1944,
                      "name": "_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 1991,
                      "src": "2726:13:10",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1943,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2726:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1960,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1948,
                            "name": "_kernelProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1878,
                            "src": "2799:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1949,
                            "name": "_paymentsProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1880,
                            "src": "2829:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1950,
                            "name": "_paymentsToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1882,
                            "src": "2861:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1951,
                            "name": "_oracleProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1884,
                            "src": "2893:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1952,
                            "name": "_termsProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1886,
                            "src": "2923:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1953,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1888,
                            "src": "2952:10:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1954,
                            "name": "_title",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1890,
                            "src": "2980:6:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1955,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6095,
                              "src": "3004:3:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1956,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3004:10:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1957,
                            "name": "_salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1894,
                            "src": "3032:5:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1946,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6082,
                            "src": "2765:3:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2765:16:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1958,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2765:286:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1945,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6089,
                      "src": "2742:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1959,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2742:319:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2726:335:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1969,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1962,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "3079:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 1964,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1963,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1944,
                              "src": "3091:5:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3079:18:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 1965,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3742,
                          "src": "3079:26:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1967,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3117:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1966,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3109:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1968,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3109:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3079:40:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1961,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "3071:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3071:49:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1971,
                  "nodeType": "ExpressionStatement",
                  "src": "3071:49:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1976,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1972,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "3131:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 1974,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1973,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1944,
                        "src": "3143:5:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3131:18:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1975,
                      "name": "_entry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1928,
                      "src": "3152:6:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_memory_ptr",
                        "typeString": "struct RegistryStorage.BetEntry memory"
                      }
                    },
                    "src": "3131:27:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                      "typeString": "struct RegistryStorage.BetEntry storage ref"
                    }
                  },
                  "id": 1977,
                  "nodeType": "ExpressionStatement",
                  "src": "3131:27:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1981,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1944,
                        "src": "3178:5:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1978,
                        "name": "bets",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "3168:4:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 1980,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3168:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) returns (uint256)"
                      }
                    },
                    "id": 1982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3168:16:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1983,
                  "nodeType": "ExpressionStatement",
                  "src": "3168:16:10"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1985,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1944,
                        "src": "3211:5:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1984,
                      "name": "LogBetEntry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1812,
                      "src": "3199:11:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3199:18:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1987,
                  "nodeType": "EmitStatement",
                  "src": "3194:23:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1988,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1944,
                    "src": "3234:5:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 1898,
                  "id": 1989,
                  "nodeType": "Return",
                  "src": "3227:12:10"
                }
              ]
            },
            "documentation": "@dev Function to create bets in the registry\n@param _kernelProxy address Direction of the kernel proxy contract\n@param _paymentsProxy address Direction of the payments proxy contract\n@param _oracleProxy address Direction of the oracle proxy contract\n@param _termsProxy address Address of the terms proxy contract\n@param _termsHash bytes32 Address of the hash terms of the bet\n@param _salt uint random number to provide a unique hash\n@return bytes32 the that identifies the bet",
            "id": 1991,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createBet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1895,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1878,
                  "name": "_kernelProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "1897:20:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1877,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1897:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1880,
                  "name": "_paymentsProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "1927:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1879,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1927:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1882,
                  "name": "_paymentsToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "1959:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1881,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1959:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1884,
                  "name": "_oracleProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "1991:20:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1883,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1991:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1886,
                  "name": "_termsProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2021:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1885,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2021:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1888,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2050:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1887,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2050:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1890,
                  "name": "_title",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2078:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1889,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2078:6:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1892,
                  "name": "_sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2101:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1891,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2101:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1894,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2126:10:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1893,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2126:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1887:255:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 1898,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1897,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2158:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1896,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2158:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2157:9:10"
            },
            "scope": 2635,
            "src": "1869:1377:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2002,
              "nodeType": "Block",
              "src": "3310:36:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1998,
                      "name": "bets",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1817,
                      "src": "3327:4:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 2000,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1999,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1993,
                      "src": "3332:6:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3327:12:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 1997,
                  "id": 2001,
                  "nodeType": "Return",
                  "src": "3320:19:10"
                }
              ]
            },
            "documentation": null,
            "id": 2003,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1993,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 2003,
                  "src": "3268:11:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1992,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3268:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3267:13:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 1997,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1996,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2003,
                  "src": "3301:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1995,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3301:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3300:9:10"
            },
            "scope": 2635,
            "src": "3252:94:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2072,
              "nodeType": "Block",
              "src": "3608:538:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2026,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2019,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "3626:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2021,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2020,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2005,
                              "src": "3638:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3626:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2022,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3742,
                          "src": "3626:29:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2024,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3667:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2023,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3659:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3659:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3626:43:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2018,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "3618:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2027,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3618:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2028,
                  "nodeType": "ExpressionStatement",
                  "src": "3618:52:10"
                },
                {
                  "assignments": [
                    2030
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2030,
                      "name": "_bet",
                      "nodeType": "VariableDeclaration",
                      "scope": 2073,
                      "src": "3681:21:10",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_memory_ptr",
                        "typeString": "struct RegistryStorage.PlayerBet"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2029,
                        "name": "PlayerBet",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3766,
                        "src": "3681:9:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PlayerBet_$3766_storage_ptr",
                          "typeString": "struct RegistryStorage.PlayerBet"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2037,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2032,
                        "name": "_sender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2007,
                        "src": "3728:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2033,
                        "name": "_option",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2009,
                        "src": "3749:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2034,
                        "name": "_number",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2011,
                        "src": "3770:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 2035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3791:5:10",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2031,
                      "name": "PlayerBet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3766,
                      "src": "3705:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_PlayerBet_$3766_storage_ptr_$",
                        "typeString": "type(struct RegistryStorage.PlayerBet storage pointer)"
                      }
                    },
                    "id": 2036,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3705:101:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PlayerBet_$3766_memory",
                      "typeString": "struct RegistryStorage.PlayerBet memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3681:125:10"
                },
                {
                  "assignments": [
                    2039
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2039,
                      "name": "_playerBetHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2073,
                      "src": "3817:22:10",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2038,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3817:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2046,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2041,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2005,
                        "src": "3872:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2042,
                        "name": "_sender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2007,
                        "src": "3894:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2043,
                        "name": "_option",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2009,
                        "src": "3915:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2044,
                        "name": "_number",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2011,
                        "src": "3936:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2040,
                      "name": "getPlayerBetHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2175,
                      "src": "3842:16:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,uint256) view returns (bytes32)"
                      }
                    },
                    "id": 2045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3842:111:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3817:136:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2058,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 2048,
                                  "name": "betRegistry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3770,
                                  "src": "3972:11:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                    "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                                  }
                                },
                                "id": 2050,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 2049,
                                  "name": "_betHash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2005,
                                  "src": "3984:8:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3972:21:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                                  "typeString": "struct RegistryStorage.BetEntry storage ref"
                                }
                              },
                              "id": 2051,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "playerBets",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3746,
                              "src": "3972:32:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                              }
                            },
                            "id": 2053,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2052,
                              "name": "_playerBetHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2039,
                              "src": "4005:14:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3972:48:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                              "typeString": "struct RegistryStorage.PlayerBet storage ref"
                            }
                          },
                          "id": 2054,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "player",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3759,
                          "src": "3972:55:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2056,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4039:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4031:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2057,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4031:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3972:69:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2047,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "3964:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3964:78:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2060,
                  "nodeType": "ExpressionStatement",
                  "src": "3964:78:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2061,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "4052:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2063,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2062,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2005,
                            "src": "4064:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4052:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2064,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "4052:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2066,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2065,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2039,
                        "src": "4085:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4052:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2067,
                      "name": "_bet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2030,
                      "src": "4103:4:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_memory_ptr",
                        "typeString": "struct RegistryStorage.PlayerBet memory"
                      }
                    },
                    "src": "4052:55:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                      "typeString": "struct RegistryStorage.PlayerBet storage ref"
                    }
                  },
                  "id": 2069,
                  "nodeType": "ExpressionStatement",
                  "src": "4052:55:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2070,
                    "name": "_playerBetHash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2039,
                    "src": "4125:14:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2017,
                  "id": 2071,
                  "nodeType": "Return",
                  "src": "4118:21:10"
                }
              ]
            },
            "documentation": null,
            "id": 2073,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2014,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2013,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "3564:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3564:14:10"
              }
            ],
            "name": "insertPlayerBet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2012,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2005,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3449:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2004,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3449:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2007,
                  "name": "_sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3475:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2006,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3475:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2009,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3500:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2008,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3500:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2011,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3522:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2010,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3522:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3439:101:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2016,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3595:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2015,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3595:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3594:9:10"
            },
            "scope": 2635,
            "src": "3415:731:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2107,
              "nodeType": "Block",
              "src": "4492:180:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2085,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "4510:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2087,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2086,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2075,
                              "src": "4522:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4510:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2088,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3742,
                          "src": "4510:29:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2090,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4551:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2089,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4543:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4543:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "4510:43:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2084,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "4502:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4502:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2094,
                  "nodeType": "ExpressionStatement",
                  "src": "4502:52:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2095,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "4565:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2097,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2096,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2075,
                          "src": "4577:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4565:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2098,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalPrincipal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3756,
                      "src": "4565:36:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2099,
                      "name": "_number",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2077,
                      "src": "4605:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4565:47:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2101,
                  "nodeType": "ExpressionStatement",
                  "src": "4565:47:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2102,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "4629:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2104,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2103,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2075,
                        "src": "4641:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4629:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2105,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "totalPrincipal",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3756,
                    "src": "4629:36:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2083,
                  "id": 2106,
                  "nodeType": "Return",
                  "src": "4622:43:10"
                }
              ]
            },
            "documentation": "@dev Function that lets you add to the principal\n@param _betHash bytes32 the bet\n@param _number uint the amount to add\n@return uint the totalPrincipal",
            "id": 2108,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2080,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2079,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "4451:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4451:14:10"
              }
            ],
            "name": "addTotalPrincipal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2078,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2075,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2108,
                  "src": "4383:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2074,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4383:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2077,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 2108,
                  "src": "4409:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2076,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4409:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4373:54:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2083,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2082,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2108,
                  "src": "4482:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2081,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4482:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4481:6:10"
            },
            "scope": 2635,
            "src": "4347:325:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2148,
              "nodeType": "Block",
              "src": "5113:205:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2129,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2122,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "5131:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2124,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2123,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2110,
                              "src": "5143:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5131:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2125,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3742,
                          "src": "5131:29:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2127,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5172:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2126,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5164:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2128,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5164:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "5131:43:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2121,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "5123:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5123:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2131,
                  "nodeType": "ExpressionStatement",
                  "src": "5123:52:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2132,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "5186:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2134,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2133,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2110,
                            "src": "5198:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5186:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2135,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "principalInOption",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3750,
                        "src": "5186:39:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 2137,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2136,
                        "name": "_option",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2112,
                        "src": "5226:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5186:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2138,
                      "name": "_number",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2114,
                      "src": "5238:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5186:59:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2140,
                  "nodeType": "ExpressionStatement",
                  "src": "5186:59:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2141,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "5263:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2143,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2142,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2110,
                          "src": "5275:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5263:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2144,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "principalInOption",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3750,
                      "src": "5263:39:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 2146,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2145,
                      "name": "_option",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2112,
                      "src": "5303:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5263:48:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2120,
                  "id": 2147,
                  "nodeType": "Return",
                  "src": "5256:55:10"
                }
              ]
            },
            "documentation": "@dev Function that lets you add to an option\n@param _betHash bytes32 of the bet you want to get\n@param _option uint the option you are betting on\n@param _number uint the amount to add\n@return uint the amount in that option",
            "id": 2149,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2117,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2116,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "5072:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5072:14:10"
              }
            ],
            "name": "addToOption",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2115,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2110,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2149,
                  "src": "4982:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2109,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4982:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2112,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2149,
                  "src": "5008:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2111,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5008:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2114,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 2149,
                  "src": "5030:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2113,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5030:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4972:76:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2119,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2149,
                  "src": "5103:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2118,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5103:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5102:6:10"
            },
            "scope": 2635,
            "src": "4952:366:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2174,
              "nodeType": "Block",
              "src": "5960:219:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2165,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2151,
                            "src": "6034:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2166,
                            "name": "_sender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2153,
                            "src": "6060:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2167,
                            "name": "_option",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2155,
                            "src": "6085:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2168,
                            "name": "_number",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2157,
                            "src": "6110:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2169,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6085,
                              "src": "6135:5:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 2170,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6135:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2163,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6082,
                            "src": "6000:3:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2164,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6000:16:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2171,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6000:161:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2162,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6089,
                      "src": "5977:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5977:194:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2161,
                  "id": 2173,
                  "nodeType": "Return",
                  "src": "5970:201:10"
                }
              ]
            },
            "documentation": "@dev Function that returns the hash a bet would have\n@param _betHash bytes32 the hash of the bet where place play will happen\n@param _sender address the address that wants to bet\n@param _option uint the option they want to bet on\n@param _number uint the parameter of the bet. This depends if it is an\nERC20 or ERC721 token\n@return bytes32 the hash of the bet the player is going to make",
            "id": 2175,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2151,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5811:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2150,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5811:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2153,
                  "name": "_sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5837:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2152,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5837:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2155,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5862:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2154,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5862:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2157,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5884:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2156,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5884:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5801:101:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2161,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2160,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5947:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2159,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5947:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5946:9:10"
            },
            "scope": 2635,
            "src": "5776:403:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2195,
              "nodeType": "Block",
              "src": "6329:69:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2193,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2186,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "6339:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2188,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2187,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2177,
                            "src": "6351:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6339:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2189,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "optionTitles",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3754,
                        "src": "6339:34:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                          "typeString": "mapping(uint256 => string storage ref)"
                        }
                      },
                      "id": 2191,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2190,
                        "name": "_option",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2179,
                        "src": "6374:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6339:43:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2192,
                      "name": "_title",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2181,
                      "src": "6385:6:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "6339:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 2194,
                  "nodeType": "ExpressionStatement",
                  "src": "6339:52:10"
                }
              ]
            },
            "documentation": null,
            "id": 2196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2184,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2183,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "6310:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6310:14:10"
              }
            ],
            "name": "setOptionTitle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2177,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2196,
                  "src": "6219:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2176,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6219:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2179,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2196,
                  "src": "6245:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2178,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6245:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2181,
                  "name": "_title",
                  "nodeType": "VariableDeclaration",
                  "scope": 2196,
                  "src": "6267:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2180,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6267:6:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6209:77:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2185,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6329:0:10"
            },
            "scope": 2635,
            "src": "6185:213:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2214,
              "nodeType": "Block",
              "src": "6536:96:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2205,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2198,
                            "src": "6564:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2204,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "6554:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2206,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6554:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2203,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "6546:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6546:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2208,
                  "nodeType": "ExpressionStatement",
                  "src": "6546:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2209,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "6592:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2211,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2210,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2198,
                        "src": "6604:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6592:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2212,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "kernelProxy",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3726,
                    "src": "6592:33:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2202,
                  "id": 2213,
                  "nodeType": "Return",
                  "src": "6585:40:10"
                }
              ]
            },
            "documentation": null,
            "id": 2215,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetKernelProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2198,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2215,
                  "src": "6455:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6455:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6445:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2201,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2215,
                  "src": "6523:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2200,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6523:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6522:9:10"
            },
            "scope": 2635,
            "src": "6419:213:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2233,
              "nodeType": "Block",
              "src": "6757:98:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2224,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2217,
                            "src": "6785:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2223,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "6775:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6775:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2222,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "6767:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6767:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2227,
                  "nodeType": "ExpressionStatement",
                  "src": "6767:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2228,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "6813:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2230,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2229,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2217,
                        "src": "6825:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6813:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2231,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "paymentsProxy",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3728,
                    "src": "6813:35:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2221,
                  "id": 2232,
                  "nodeType": "Return",
                  "src": "6806:42:10"
                }
              ]
            },
            "documentation": null,
            "id": 2234,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetPaymentsProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2218,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2217,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2234,
                  "src": "6676:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2216,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6676:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6666:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2220,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2234,
                  "src": "6744:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2219,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6744:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6743:9:10"
            },
            "scope": 2635,
            "src": "6638:217:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2252,
              "nodeType": "Block",
              "src": "6979:98:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2243,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2236,
                            "src": "7007:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2242,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "6997:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2244,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6997:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2241,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "6989:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6989:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2246,
                  "nodeType": "ExpressionStatement",
                  "src": "6989:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2247,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7035:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2249,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2248,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2236,
                        "src": "7047:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7035:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2250,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "paymentsToken",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3730,
                    "src": "7035:35:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2240,
                  "id": 2251,
                  "nodeType": "Return",
                  "src": "7028:42:10"
                }
              ]
            },
            "documentation": null,
            "id": 2253,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetPaymentsToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2236,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2253,
                  "src": "6899:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2235,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6899:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6889:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2239,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2253,
                  "src": "6966:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6966:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6965:9:10"
            },
            "scope": 2635,
            "src": "6861:216:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2271,
              "nodeType": "Block",
              "src": "7185:96:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2262,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2255,
                            "src": "7213:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2261,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "7203:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2263,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7203:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2260,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "7195:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7195:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2265,
                  "nodeType": "ExpressionStatement",
                  "src": "7195:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2266,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7241:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2268,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2267,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2255,
                        "src": "7253:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7241:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2269,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "oracleProxy",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3732,
                    "src": "7241:33:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2259,
                  "id": 2270,
                  "nodeType": "Return",
                  "src": "7234:40:10"
                }
              ]
            },
            "documentation": null,
            "id": 2272,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetOracleProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2256,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2255,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "7110:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2254,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7110:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7109:18:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2258,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "7172:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2257,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7172:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7171:9:10"
            },
            "scope": 2635,
            "src": "7083:198:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2290,
              "nodeType": "Block",
              "src": "7402:95:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2281,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2274,
                            "src": "7430:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2280,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "7420:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2282,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7420:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2279,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "7412:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7412:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2284,
                  "nodeType": "ExpressionStatement",
                  "src": "7412:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2285,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7458:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2287,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2286,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2274,
                        "src": "7470:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7458:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2288,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "termsProxy",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3734,
                    "src": "7458:32:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2278,
                  "id": 2289,
                  "nodeType": "Return",
                  "src": "7451:39:10"
                }
              ]
            },
            "documentation": null,
            "id": 2291,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetTermsProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2275,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2274,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2291,
                  "src": "7322:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2273,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7322:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7312:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2278,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2277,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2291,
                  "src": "7389:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2276,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7389:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7388:9:10"
            },
            "scope": 2635,
            "src": "7287:210:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2309,
              "nodeType": "Block",
              "src": "7617:94:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2300,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2293,
                            "src": "7645:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2299,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "7635:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7635:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2298,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "7627:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7627:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2303,
                  "nodeType": "ExpressionStatement",
                  "src": "7627:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2304,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7673:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2306,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2305,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2293,
                        "src": "7685:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7673:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2307,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "termsHash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3736,
                    "src": "7673:31:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2297,
                  "id": 2308,
                  "nodeType": "Return",
                  "src": "7666:38:10"
                }
              ]
            },
            "documentation": null,
            "id": 2310,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetTermsHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2294,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2293,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2310,
                  "src": "7537:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2292,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7537:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7527:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2296,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2310,
                  "src": "7604:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2295,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7604:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7603:9:10"
            },
            "scope": 2635,
            "src": "7503:208:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2322,
              "nodeType": "Block",
              "src": "7826:51:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2317,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7843:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2319,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2318,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2312,
                        "src": "7855:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7843:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2320,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "title",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3738,
                    "src": "7843:27:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 2316,
                  "id": 2321,
                  "nodeType": "Return",
                  "src": "7836:34:10"
                }
              ]
            },
            "documentation": null,
            "id": 2323,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetTitle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2313,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2312,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2323,
                  "src": "7747:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2311,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7747:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7737:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2315,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2323,
                  "src": "7814:6:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2314,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7814:6:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7813:8:10"
            },
            "scope": 2635,
            "src": "7717:160:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2341,
              "nodeType": "Block",
              "src": "7993:93:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2332,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2325,
                            "src": "8021:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2331,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "8011:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2333,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8011:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2330,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "8003:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8003:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2335,
                  "nodeType": "ExpressionStatement",
                  "src": "8003:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2336,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "8049:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2338,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2337,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2325,
                        "src": "8061:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "8049:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2339,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "datetime",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3740,
                    "src": "8049:30:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2329,
                  "id": 2340,
                  "nodeType": "Return",
                  "src": "8042:37:10"
                }
              ]
            },
            "documentation": null,
            "id": 2342,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetDatetime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2326,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2325,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "7916:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2324,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7916:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7906:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2328,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "7983:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2327,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7983:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7982:6:10"
            },
            "scope": 2635,
            "src": "7883:203:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2360,
              "nodeType": "Block",
              "src": "8204:92:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2351,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2344,
                            "src": "8232:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2350,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "8222:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8222:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2349,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "8214:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2353,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8214:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2354,
                  "nodeType": "ExpressionStatement",
                  "src": "8214:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2355,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "8260:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2357,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2356,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2344,
                        "src": "8272:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "8260:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2358,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "creator",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3742,
                    "src": "8260:29:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2348,
                  "id": 2359,
                  "nodeType": "Return",
                  "src": "8253:36:10"
                }
              ]
            },
            "documentation": null,
            "id": 2361,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetCreator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2345,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2344,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2361,
                  "src": "8124:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2343,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8124:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8114:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2348,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2347,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2361,
                  "src": "8191:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2346,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8191:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8190:9:10"
            },
            "scope": 2635,
            "src": "8092:204:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2379,
              "nodeType": "Block",
              "src": "8415:99:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2370,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2363,
                            "src": "8443:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2369,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "8433:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8433:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2368,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "8425:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8425:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2373,
                  "nodeType": "ExpressionStatement",
                  "src": "8425:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2374,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "8471:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2376,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2375,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2363,
                        "src": "8483:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "8471:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2377,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "totalPrincipal",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3756,
                    "src": "8471:36:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2367,
                  "id": 2378,
                  "nodeType": "Return",
                  "src": "8464:43:10"
                }
              ]
            },
            "documentation": null,
            "id": 2380,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTotalPrincipal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2363,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2380,
                  "src": "8338:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2362,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8338:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8328:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2366,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2380,
                  "src": "8405:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2365,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8405:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8404:6:10"
            },
            "scope": 2635,
            "src": "8302:212:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2402,
              "nodeType": "Block",
              "src": "8658:111:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2391,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2382,
                            "src": "8686:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2390,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "8676:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8676:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2389,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "8668:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8668:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2394,
                  "nodeType": "ExpressionStatement",
                  "src": "8668:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2395,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "8714:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2397,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2396,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2382,
                          "src": "8726:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8714:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2398,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "principalInOption",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3750,
                      "src": "8714:39:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 2400,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2399,
                      "name": "_option",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2384,
                      "src": "8754:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8714:48:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2388,
                  "id": 2401,
                  "nodeType": "Return",
                  "src": "8707:55:10"
                }
              ]
            },
            "documentation": null,
            "id": 2403,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPrincipalInOption",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2385,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2382,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2403,
                  "src": "8559:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2381,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8559:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2384,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2403,
                  "src": "8585:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2383,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8585:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8549:54:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2388,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2387,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2403,
                  "src": "8648:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2386,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8648:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8647:6:10"
            },
            "scope": 2635,
            "src": "8520:249:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2419,
              "nodeType": "Block",
              "src": "8909:67:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2412,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "8926:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2414,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2413,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2405,
                          "src": "8938:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8926:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2415,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "optionTitles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3754,
                      "src": "8926:34:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                        "typeString": "mapping(uint256 => string storage ref)"
                      }
                    },
                    "id": 2417,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2416,
                      "name": "_option",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2407,
                      "src": "8961:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8926:43:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 2411,
                  "id": 2418,
                  "nodeType": "Return",
                  "src": "8919:50:10"
                }
              ]
            },
            "documentation": null,
            "id": 2420,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOptionTitle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2405,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2420,
                  "src": "8808:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2404,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8808:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2407,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2420,
                  "src": "8834:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2406,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8834:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8798:54:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2410,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2420,
                  "src": "8897:6:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2409,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8897:6:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8896:8:10"
            },
            "scope": 2635,
            "src": "8775:201:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2444,
              "nodeType": "Block",
              "src": "9131:140:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2431,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2422,
                            "src": "9165:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2432,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2424,
                            "src": "9175:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2430,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "9149:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2433,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9149:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2429,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "9141:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9141:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2435,
                  "nodeType": "ExpressionStatement",
                  "src": "9141:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2436,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "9209:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2438,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2437,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2422,
                            "src": "9221:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9209:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2439,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "9209:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2441,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2440,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2424,
                        "src": "9242:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "9209:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "id": 2442,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "player",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3759,
                    "src": "9209:55:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2428,
                  "id": 2443,
                  "nodeType": "Return",
                  "src": "9202:62:10"
                }
              ]
            },
            "documentation": null,
            "id": 2445,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetPlayer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2425,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2422,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2445,
                  "src": "9019:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2421,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9019:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2424,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2445,
                  "src": "9045:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2423,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9045:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9009:64:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2427,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2445,
                  "src": "9118:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2426,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9118:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9117:9:10"
            },
            "scope": 2635,
            "src": "8982:289:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2469,
              "nodeType": "Block",
              "src": "9423:140:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2456,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2447,
                            "src": "9457:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2457,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2449,
                            "src": "9467:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2455,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "9441:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2458,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9441:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2454,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "9433:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9433:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2460,
                  "nodeType": "ExpressionStatement",
                  "src": "9433:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2461,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "9501:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2463,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2462,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2447,
                            "src": "9513:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9501:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2464,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "9501:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2466,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2465,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2449,
                        "src": "9534:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "9501:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "id": 2467,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "option",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3761,
                    "src": "9501:55:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2453,
                  "id": 2468,
                  "nodeType": "Return",
                  "src": "9494:62:10"
                }
              ]
            },
            "documentation": null,
            "id": 2470,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetOption",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2447,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2470,
                  "src": "9314:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2446,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9314:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2449,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2470,
                  "src": "9340:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2448,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9340:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9304:64:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2452,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2470,
                  "src": "9413:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2451,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9413:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9412:6:10"
            },
            "scope": 2635,
            "src": "9277:286:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2494,
              "nodeType": "Block",
              "src": "9718:143:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2481,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2472,
                            "src": "9752:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2482,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2474,
                            "src": "9762:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2480,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "9736:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9736:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2479,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "9728:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9728:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2485,
                  "nodeType": "ExpressionStatement",
                  "src": "9728:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2486,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "9796:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2488,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2487,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2472,
                            "src": "9808:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9796:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2489,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "9796:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2491,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2490,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2474,
                        "src": "9829:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "9796:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "id": 2492,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "principal",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3763,
                    "src": "9796:58:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2478,
                  "id": 2493,
                  "nodeType": "Return",
                  "src": "9789:65:10"
                }
              ]
            },
            "documentation": null,
            "id": 2495,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetPrincipal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2472,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2495,
                  "src": "9609:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2471,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9609:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2474,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2495,
                  "src": "9635:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2473,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9635:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9599:64:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2478,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2477,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2495,
                  "src": "9708:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2476,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9708:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9707:6:10"
            },
            "scope": 2635,
            "src": "9569:292:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2519,
              "nodeType": "Block",
              "src": "10015:142:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2506,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2497,
                            "src": "10049:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2507,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2499,
                            "src": "10059:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2505,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "10033:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10033:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2504,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "10025:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10025:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2510,
                  "nodeType": "ExpressionStatement",
                  "src": "10025:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2511,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "10093:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2513,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2512,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2497,
                            "src": "10105:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10093:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2514,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "10093:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2516,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2515,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2499,
                        "src": "10126:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "10093:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "id": 2517,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "returned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3765,
                    "src": "10093:57:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2503,
                  "id": 2518,
                  "nodeType": "Return",
                  "src": "10086:64:10"
                }
              ]
            },
            "documentation": null,
            "id": 2520,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetReturned",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2500,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2497,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2520,
                  "src": "9906:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2496,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9906:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2499,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2520,
                  "src": "9932:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2498,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9932:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9896:64:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2502,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2520,
                  "src": "10005:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2501,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10005:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10004:6:10"
            },
            "scope": 2635,
            "src": "9867:290:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2540,
              "nodeType": "Block",
              "src": "10226:111:10",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2527,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "10240:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2529,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2528,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2522,
                          "src": "10252:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10240:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2530,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "creator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3742,
                      "src": "10240:29:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2532,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10281:1:10",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10273:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2533,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10273:10:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10240:43:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2537,
                  "nodeType": "IfStatement",
                  "src": "10236:73:10",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 2535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10304:5:10",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 2526,
                    "id": 2536,
                    "nodeType": "Return",
                    "src": "10297:12:10"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "10326:4:10",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 2526,
                  "id": 2539,
                  "nodeType": "Return",
                  "src": "10319:11:10"
                }
              ]
            },
            "documentation": null,
            "id": 2541,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "betExists",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2522,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2541,
                  "src": "10182:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2521,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10182:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10181:18:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2525,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2541,
                  "src": "10220:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2524,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10220:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10219:6:10"
            },
            "scope": 2635,
            "src": "10163:174:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2572,
              "nodeType": "Block",
              "src": "10436:175:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2552,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2543,
                            "src": "10464:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2551,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "10454:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2553,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10454:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2550,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "10446:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2554,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10446:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2555,
                  "nodeType": "ExpressionStatement",
                  "src": "10446:28:10"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2566,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2556,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "10488:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2558,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2557,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2543,
                              "src": "10500:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10488:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2559,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "playerBets",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3746,
                          "src": "10488:32:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                          }
                        },
                        "id": 2561,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2560,
                          "name": "_playerBetHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2545,
                          "src": "10521:14:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10488:48:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                          "typeString": "struct RegistryStorage.PlayerBet storage ref"
                        }
                      },
                      "id": 2562,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "player",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3759,
                      "src": "10488:55:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10555:1:10",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2563,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10547:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2565,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10547:10:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10488:69:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2569,
                  "nodeType": "IfStatement",
                  "src": "10484:99:10",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 2567,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10578:5:10",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 2549,
                    "id": 2568,
                    "nodeType": "Return",
                    "src": "10571:12:10"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "10600:4:10",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 2549,
                  "id": 2571,
                  "nodeType": "Return",
                  "src": "10593:11:10"
                }
              ]
            },
            "documentation": null,
            "id": 2573,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "playerBetExists",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2546,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2543,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "10368:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2542,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10368:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2545,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "10386:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2544,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10386:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10367:42:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2549,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2548,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "10430:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2547,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10430:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10429:6:10"
            },
            "scope": 2635,
            "src": "10343:268:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2605,
              "nodeType": "Block",
              "src": "10799:167:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2588,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2575,
                            "src": "10833:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2589,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2577,
                            "src": "10843:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2587,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "10817:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2590,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10817:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2586,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "10809:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10809:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2592,
                  "nodeType": "ExpressionStatement",
                  "src": "10809:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2593,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "10869:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2595,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2594,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2575,
                              "src": "10881:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10869:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2596,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "playerBets",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3746,
                          "src": "10869:32:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                          }
                        },
                        "id": 2598,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2597,
                          "name": "_playerBetHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2577,
                          "src": "10902:14:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10869:48:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                          "typeString": "struct RegistryStorage.PlayerBet storage ref"
                        }
                      },
                      "id": 2599,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "returned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3765,
                      "src": "10869:57:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2600,
                      "name": "_returned",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2579,
                      "src": "10929:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "10869:69:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2602,
                  "nodeType": "ExpressionStatement",
                  "src": "10869:69:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "10955:4:10",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 2585,
                  "id": 2604,
                  "nodeType": "Return",
                  "src": "10948:11:10"
                }
              ]
            },
            "documentation": null,
            "id": 2606,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2582,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2581,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "10758:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "10758:14:10"
              }
            ],
            "name": "setPlayerBetReturned",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2580,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2575,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2606,
                  "src": "10656:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10656:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2577,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2606,
                  "src": "10682:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2576,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10682:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2579,
                  "name": "_returned",
                  "nodeType": "VariableDeclaration",
                  "scope": 2606,
                  "src": "10714:14:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2578,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10714:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10646:88:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2584,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2606,
                  "src": "10789:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2583,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10789:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10788:6:10"
            },
            "scope": 2635,
            "src": "10617:349:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2633,
              "nodeType": "Block",
              "src": "11023:209:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2630,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 2626,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 2622,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 2618,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 2614,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2612,
                                  "name": "_sender",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2608,
                                  "src": "11054:7:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 2613,
                                  "name": "betKernel",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3716,
                                  "src": "11065:9:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "11054:20:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "||",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 2617,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2615,
                                  "name": "_sender",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2608,
                                  "src": "11090:7:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 2616,
                                  "name": "betPayments",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3718,
                                  "src": "11101:11:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "11090:22:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "11054:58:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 2621,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2619,
                                "name": "_sender",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2608,
                                "src": "11128:7:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 2620,
                                "name": "betOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3720,
                                "src": "11139:9:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "11128:20:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "11054:94:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 2625,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2623,
                              "name": "_sender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2608,
                              "src": "11164:7:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 2624,
                              "name": "betTerms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3722,
                              "src": "11175:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "11164:19:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "11054:129:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 2629,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2627,
                            "name": "_sender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2608,
                            "src": "11199:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2628,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4271,
                            "src": "11210:5:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "11199:16:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "11054:161:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2611,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "11033:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11033:192:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2632,
                  "nodeType": "ExpressionStatement",
                  "src": "11033:192:10"
                }
              ]
            },
            "documentation": null,
            "id": 2634,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAuthorised",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2609,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2608,
                  "name": "_sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2634,
                  "src": "10994:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2607,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10994:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10993:17:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2610,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11023:0:10"
            },
            "scope": 2635,
            "src": "10972:260:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2636,
        "src": "522:10712:10"
      }
    ],
    "src": "0:11235:10"
  },
  "legacyAST": {
    "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/BetRegistry.sol",
    "exportedSymbols": {
      "BetRegistry": [
        2635
      ]
    },
    "id": 2636,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1800,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:10"
      },
      {
        "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/RegistryStorage.sol",
        "file": "./RegistryStorage.sol",
        "id": 1801,
        "nodeType": "ImportDirective",
        "scope": 2636,
        "sourceUnit": 3820,
        "src": "38:31:10",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/ProxyRegistry.sol",
        "file": "./ProxyRegistry.sol",
        "id": 1802,
        "nodeType": "ImportDirective",
        "scope": 2636,
        "sourceUnit": 3665,
        "src": "70:29:10",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 1803,
        "nodeType": "ImportDirective",
        "scope": 2636,
        "sourceUnit": 4268,
        "src": "112:59:10",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1804,
              "name": "RegistryStorage",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3819,
              "src": "546:15:10",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RegistryStorage_$3819",
                "typeString": "contract RegistryStorage"
              }
            },
            "id": 1805,
            "nodeType": "InheritanceSpecifier",
            "src": "546:15:10"
          }
        ],
        "contractDependencies": [
          3819,
          4173,
          4353
        ],
        "contractKind": "contract",
        "documentation": "@title Bet BetRegistry. ",
        "fullyImplemented": true,
        "id": 2635,
        "linearizedBaseContracts": [
          2635,
          3819,
          4173,
          4353
        ],
        "name": "BetRegistry",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1808,
            "libraryName": {
              "contractScope": null,
              "id": 1806,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4267,
              "src": "574:8:10",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$4267",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "568:24:10",
            "typeName": {
              "id": 1807,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "587:4:10",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1812,
            "name": "LogBetEntry",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1810,
                  "indexed": false,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1812,
                  "src": "630:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1809,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "630:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "629:15:10"
            },
            "src": "612:33:10"
          },
          {
            "constant": false,
            "id": 1814,
            "name": "proxyRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 2635,
            "src": "666:34:10",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
              "typeString": "contract ProxyRegistry"
            },
            "typeName": {
              "contractScope": null,
              "id": 1813,
              "name": "ProxyRegistry",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3664,
              "src": "666:13:10",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                "typeString": "contract ProxyRegistry"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1817,
            "name": "bets",
            "nodeType": "VariableDeclaration",
            "scope": 2635,
            "src": "707:21:10",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
              "typeString": "bytes32[]"
            },
            "typeName": {
              "baseType": {
                "id": 1815,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "707:7:10",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "id": 1816,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "707:9:10",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1852,
              "nodeType": "Block",
              "src": "905:192:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1834,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1830,
                      "name": "proxyRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1814,
                      "src": "915:13:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                        "typeString": "contract ProxyRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1832,
                          "name": "_proxyRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1819,
                          "src": "945:14:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1831,
                        "name": "ProxyRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3664,
                        "src": "931:13:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ProxyRegistry_$3664_$",
                          "typeString": "type(contract ProxyRegistry)"
                        }
                      },
                      "id": 1833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "931:29:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                        "typeString": "contract ProxyRegistry"
                      }
                    },
                    "src": "915:45:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                      "typeString": "contract ProxyRegistry"
                    }
                  },
                  "id": 1835,
                  "nodeType": "ExpressionStatement",
                  "src": "915:45:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1836,
                      "name": "betKernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3716,
                      "src": "970:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1837,
                      "name": "_betKernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1821,
                      "src": "982:10:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "970:22:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1839,
                  "nodeType": "ExpressionStatement",
                  "src": "970:22:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1840,
                      "name": "betPayments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3718,
                      "src": "1002:11:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1841,
                      "name": "_betPayments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1823,
                      "src": "1016:12:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1002:26:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1843,
                  "nodeType": "ExpressionStatement",
                  "src": "1002:26:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1844,
                      "name": "betOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3720,
                      "src": "1038:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1845,
                      "name": "_betOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1825,
                      "src": "1050:10:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1038:22:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1847,
                  "nodeType": "ExpressionStatement",
                  "src": "1038:22:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1850,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1848,
                      "name": "betTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3722,
                      "src": "1070:8:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1849,
                      "name": "_betTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1827,
                      "src": "1081:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1070:20:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1851,
                  "nodeType": "ExpressionStatement",
                  "src": "1070:20:10"
                }
              ]
            },
            "documentation": null,
            "id": 1853,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1828,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1819,
                  "name": "_proxyRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "756:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1818,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "756:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1821,
                  "name": "_betKernel",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "788:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1820,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "788:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1823,
                  "name": "_betPayments",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "816:20:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1822,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "816:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1825,
                  "name": "_betOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "846:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1824,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "846:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1827,
                  "name": "_betTerms",
                  "nodeType": "VariableDeclaration",
                  "scope": 1853,
                  "src": "874:17:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1826,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "874:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "746:151:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 1829,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "905:0:10"
            },
            "scope": 2635,
            "src": "735:362:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1861,
              "nodeType": "Block",
              "src": "1127:52:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1856,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6095,
                          "src": "1150:3:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1150:10:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1855,
                      "name": "isAuthorised",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2634,
                      "src": "1137:12:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 1858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1137:24:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1859,
                  "nodeType": "ExpressionStatement",
                  "src": "1137:24:10"
                },
                {
                  "id": 1860,
                  "nodeType": "PlaceholderStatement",
                  "src": "1171:1:10"
                }
              ]
            },
            "documentation": null,
            "id": 1862,
            "name": "onlyAuthorised",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1854,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1127:0:10"
            },
            "src": "1103:76:10",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1875,
              "nodeType": "Block",
              "src": "1252:62:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1873,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1869,
                      "name": "proxyRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1814,
                      "src": "1262:13:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                        "typeString": "contract ProxyRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1871,
                          "name": "_proxyRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1864,
                          "src": "1292:14:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1870,
                        "name": "ProxyRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3664,
                        "src": "1278:13:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ProxyRegistry_$3664_$",
                          "typeString": "type(contract ProxyRegistry)"
                        }
                      },
                      "id": 1872,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1278:29:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                        "typeString": "contract ProxyRegistry"
                      }
                    },
                    "src": "1262:45:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                      "typeString": "contract ProxyRegistry"
                    }
                  },
                  "id": 1874,
                  "nodeType": "ExpressionStatement",
                  "src": "1262:45:10"
                }
              ]
            },
            "documentation": null,
            "id": 1876,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1867,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1866,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4301,
                  "src": "1242:9:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1242:9:10"
              }
            ],
            "name": "setProxyRegistry",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1865,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1864,
                  "name": "_proxyRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 1876,
                  "src": "1211:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1863,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1211:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1210:24:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 1868,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1252:0:10"
            },
            "scope": 2635,
            "src": "1185:129:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1990,
              "nodeType": "Block",
              "src": "2167:1079:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1902,
                            "name": "_kernelProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1878,
                            "src": "2216:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1900,
                            "name": "proxyRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1814,
                            "src": "2185:13:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                              "typeString": "contract ProxyRegistry"
                            }
                          },
                          "id": 1901,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressInProxies",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3663,
                          "src": "2185:30:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 1903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2185:44:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1899,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "2177:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2177:53:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1905,
                  "nodeType": "ExpressionStatement",
                  "src": "2177:53:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1909,
                            "name": "_paymentsProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1880,
                            "src": "2279:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1907,
                            "name": "proxyRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1814,
                            "src": "2248:13:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                              "typeString": "contract ProxyRegistry"
                            }
                          },
                          "id": 1908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressInProxies",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3663,
                          "src": "2248:30:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 1910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2248:46:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1906,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "2240:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2240:55:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1912,
                  "nodeType": "ExpressionStatement",
                  "src": "2240:55:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1916,
                            "name": "_oracleProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1884,
                            "src": "2344:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1914,
                            "name": "proxyRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1814,
                            "src": "2313:13:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                              "typeString": "contract ProxyRegistry"
                            }
                          },
                          "id": 1915,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressInProxies",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3663,
                          "src": "2313:30:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 1917,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2313:44:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1913,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "2305:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1918,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2305:53:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1919,
                  "nodeType": "ExpressionStatement",
                  "src": "2305:53:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1923,
                            "name": "_termsProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1886,
                            "src": "2407:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1921,
                            "name": "proxyRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1814,
                            "src": "2376:13:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ProxyRegistry_$3664",
                              "typeString": "contract ProxyRegistry"
                            }
                          },
                          "id": 1922,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressInProxies",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3663,
                          "src": "2376:30:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 1924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2376:43:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1920,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "2368:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2368:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1926,
                  "nodeType": "ExpressionStatement",
                  "src": "2368:52:10"
                },
                {
                  "assignments": [
                    1928
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1928,
                      "name": "_entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 1991,
                      "src": "2431:22:10",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_memory_ptr",
                        "typeString": "struct RegistryStorage.BetEntry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1927,
                        "name": "BetEntry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3757,
                        "src": "2431:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage_ptr",
                          "typeString": "struct RegistryStorage.BetEntry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1942,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1930,
                        "name": "_kernelProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1878,
                        "src": "2478:12:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1931,
                        "name": "_paymentsProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1880,
                        "src": "2504:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1932,
                        "name": "_paymentsToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1882,
                        "src": "2532:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1933,
                        "name": "_oracleProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1884,
                        "src": "2560:12:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1934,
                        "name": "_termsProxy",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1886,
                        "src": "2586:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1935,
                        "name": "_termsHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1888,
                        "src": "2611:10:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1936,
                        "name": "_title",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "2635:6:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1937,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6085,
                          "src": "2655:5:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 1938,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2655:15:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1939,
                        "name": "_sender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1892,
                        "src": "2684:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2705:1:10",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 1929,
                      "name": "BetEntry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3757,
                      "src": "2456:8:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_BetEntry_$3757_storage_ptr_$",
                        "typeString": "type(struct RegistryStorage.BetEntry storage pointer)"
                      }
                    },
                    "id": 1941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2456:260:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_BetEntry_$3757_memory",
                      "typeString": "struct RegistryStorage.BetEntry memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2431:285:10"
                },
                {
                  "assignments": [
                    1944
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1944,
                      "name": "_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 1991,
                      "src": "2726:13:10",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1943,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2726:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1960,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1948,
                            "name": "_kernelProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1878,
                            "src": "2799:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1949,
                            "name": "_paymentsProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1880,
                            "src": "2829:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1950,
                            "name": "_paymentsToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1882,
                            "src": "2861:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1951,
                            "name": "_oracleProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1884,
                            "src": "2893:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1952,
                            "name": "_termsProxy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1886,
                            "src": "2923:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1953,
                            "name": "_termsHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1888,
                            "src": "2952:10:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1954,
                            "name": "_title",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1890,
                            "src": "2980:6:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1955,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6095,
                              "src": "3004:3:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1956,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3004:10:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1957,
                            "name": "_salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1894,
                            "src": "3032:5:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1946,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6082,
                            "src": "2765:3:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2765:16:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1958,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2765:286:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1945,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6089,
                      "src": "2742:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1959,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2742:319:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2726:335:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1969,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1962,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "3079:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 1964,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1963,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1944,
                              "src": "3091:5:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3079:18:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 1965,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3742,
                          "src": "3079:26:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1967,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3117:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1966,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3109:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1968,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3109:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3079:40:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1961,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "3071:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3071:49:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1971,
                  "nodeType": "ExpressionStatement",
                  "src": "3071:49:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1976,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1972,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "3131:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 1974,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1973,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1944,
                        "src": "3143:5:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3131:18:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1975,
                      "name": "_entry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1928,
                      "src": "3152:6:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_memory_ptr",
                        "typeString": "struct RegistryStorage.BetEntry memory"
                      }
                    },
                    "src": "3131:27:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                      "typeString": "struct RegistryStorage.BetEntry storage ref"
                    }
                  },
                  "id": 1977,
                  "nodeType": "ExpressionStatement",
                  "src": "3131:27:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1981,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1944,
                        "src": "3178:5:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1978,
                        "name": "bets",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "3168:4:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 1980,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3168:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) returns (uint256)"
                      }
                    },
                    "id": 1982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3168:16:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1983,
                  "nodeType": "ExpressionStatement",
                  "src": "3168:16:10"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1985,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1944,
                        "src": "3211:5:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1984,
                      "name": "LogBetEntry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1812,
                      "src": "3199:11:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3199:18:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1987,
                  "nodeType": "EmitStatement",
                  "src": "3194:23:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1988,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1944,
                    "src": "3234:5:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 1898,
                  "id": 1989,
                  "nodeType": "Return",
                  "src": "3227:12:10"
                }
              ]
            },
            "documentation": "@dev Function to create bets in the registry\n@param _kernelProxy address Direction of the kernel proxy contract\n@param _paymentsProxy address Direction of the payments proxy contract\n@param _oracleProxy address Direction of the oracle proxy contract\n@param _termsProxy address Address of the terms proxy contract\n@param _termsHash bytes32 Address of the hash terms of the bet\n@param _salt uint random number to provide a unique hash\n@return bytes32 the that identifies the bet",
            "id": 1991,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createBet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1895,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1878,
                  "name": "_kernelProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "1897:20:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1877,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1897:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1880,
                  "name": "_paymentsProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "1927:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1879,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1927:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1882,
                  "name": "_paymentsToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "1959:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1881,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1959:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1884,
                  "name": "_oracleProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "1991:20:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1883,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1991:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1886,
                  "name": "_termsProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2021:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1885,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2021:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1888,
                  "name": "_termsHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2050:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1887,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2050:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1890,
                  "name": "_title",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2078:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1889,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2078:6:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1892,
                  "name": "_sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2101:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1891,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2101:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1894,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2126:10:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1893,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2126:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1887:255:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 1898,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1897,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "2158:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1896,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2158:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2157:9:10"
            },
            "scope": 2635,
            "src": "1869:1377:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2002,
              "nodeType": "Block",
              "src": "3310:36:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1998,
                      "name": "bets",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1817,
                      "src": "3327:4:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 2000,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1999,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1993,
                      "src": "3332:6:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3327:12:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 1997,
                  "id": 2001,
                  "nodeType": "Return",
                  "src": "3320:19:10"
                }
              ]
            },
            "documentation": null,
            "id": 2003,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1993,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 2003,
                  "src": "3268:11:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1992,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3268:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3267:13:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 1997,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1996,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2003,
                  "src": "3301:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1995,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3301:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3300:9:10"
            },
            "scope": 2635,
            "src": "3252:94:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2072,
              "nodeType": "Block",
              "src": "3608:538:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2026,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2019,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "3626:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2021,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2020,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2005,
                              "src": "3638:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3626:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2022,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3742,
                          "src": "3626:29:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2024,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3667:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2023,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3659:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3659:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3626:43:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2018,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "3618:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2027,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3618:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2028,
                  "nodeType": "ExpressionStatement",
                  "src": "3618:52:10"
                },
                {
                  "assignments": [
                    2030
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2030,
                      "name": "_bet",
                      "nodeType": "VariableDeclaration",
                      "scope": 2073,
                      "src": "3681:21:10",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_memory_ptr",
                        "typeString": "struct RegistryStorage.PlayerBet"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2029,
                        "name": "PlayerBet",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3766,
                        "src": "3681:9:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PlayerBet_$3766_storage_ptr",
                          "typeString": "struct RegistryStorage.PlayerBet"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2037,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2032,
                        "name": "_sender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2007,
                        "src": "3728:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2033,
                        "name": "_option",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2009,
                        "src": "3749:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2034,
                        "name": "_number",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2011,
                        "src": "3770:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 2035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3791:5:10",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2031,
                      "name": "PlayerBet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3766,
                      "src": "3705:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_PlayerBet_$3766_storage_ptr_$",
                        "typeString": "type(struct RegistryStorage.PlayerBet storage pointer)"
                      }
                    },
                    "id": 2036,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3705:101:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PlayerBet_$3766_memory",
                      "typeString": "struct RegistryStorage.PlayerBet memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3681:125:10"
                },
                {
                  "assignments": [
                    2039
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2039,
                      "name": "_playerBetHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2073,
                      "src": "3817:22:10",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2038,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3817:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2046,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2041,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2005,
                        "src": "3872:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2042,
                        "name": "_sender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2007,
                        "src": "3894:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2043,
                        "name": "_option",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2009,
                        "src": "3915:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2044,
                        "name": "_number",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2011,
                        "src": "3936:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2040,
                      "name": "getPlayerBetHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2175,
                      "src": "3842:16:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,uint256) view returns (bytes32)"
                      }
                    },
                    "id": 2045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3842:111:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3817:136:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2058,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 2048,
                                  "name": "betRegistry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3770,
                                  "src": "3972:11:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                    "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                                  }
                                },
                                "id": 2050,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 2049,
                                  "name": "_betHash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2005,
                                  "src": "3984:8:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3972:21:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                                  "typeString": "struct RegistryStorage.BetEntry storage ref"
                                }
                              },
                              "id": 2051,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "playerBets",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3746,
                              "src": "3972:32:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                              }
                            },
                            "id": 2053,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2052,
                              "name": "_playerBetHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2039,
                              "src": "4005:14:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3972:48:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                              "typeString": "struct RegistryStorage.PlayerBet storage ref"
                            }
                          },
                          "id": 2054,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "player",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3759,
                          "src": "3972:55:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2056,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4039:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4031:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2057,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4031:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3972:69:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2047,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "3964:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3964:78:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2060,
                  "nodeType": "ExpressionStatement",
                  "src": "3964:78:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2061,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "4052:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2063,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2062,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2005,
                            "src": "4064:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4052:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2064,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "4052:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2066,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2065,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2039,
                        "src": "4085:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4052:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2067,
                      "name": "_bet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2030,
                      "src": "4103:4:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_memory_ptr",
                        "typeString": "struct RegistryStorage.PlayerBet memory"
                      }
                    },
                    "src": "4052:55:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                      "typeString": "struct RegistryStorage.PlayerBet storage ref"
                    }
                  },
                  "id": 2069,
                  "nodeType": "ExpressionStatement",
                  "src": "4052:55:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2070,
                    "name": "_playerBetHash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2039,
                    "src": "4125:14:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2017,
                  "id": 2071,
                  "nodeType": "Return",
                  "src": "4118:21:10"
                }
              ]
            },
            "documentation": null,
            "id": 2073,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2014,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2013,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "3564:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3564:14:10"
              }
            ],
            "name": "insertPlayerBet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2012,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2005,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3449:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2004,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3449:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2007,
                  "name": "_sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3475:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2006,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3475:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2009,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3500:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2008,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3500:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2011,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3522:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2010,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3522:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3439:101:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2016,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2073,
                  "src": "3595:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2015,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3595:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3594:9:10"
            },
            "scope": 2635,
            "src": "3415:731:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2107,
              "nodeType": "Block",
              "src": "4492:180:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2085,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "4510:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2087,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2086,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2075,
                              "src": "4522:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4510:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2088,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3742,
                          "src": "4510:29:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2090,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4551:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2089,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4543:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4543:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "4510:43:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2084,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "4502:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4502:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2094,
                  "nodeType": "ExpressionStatement",
                  "src": "4502:52:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2095,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "4565:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2097,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2096,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2075,
                          "src": "4577:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4565:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2098,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalPrincipal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3756,
                      "src": "4565:36:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2099,
                      "name": "_number",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2077,
                      "src": "4605:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4565:47:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2101,
                  "nodeType": "ExpressionStatement",
                  "src": "4565:47:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2102,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "4629:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2104,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2103,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2075,
                        "src": "4641:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4629:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2105,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "totalPrincipal",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3756,
                    "src": "4629:36:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2083,
                  "id": 2106,
                  "nodeType": "Return",
                  "src": "4622:43:10"
                }
              ]
            },
            "documentation": "@dev Function that lets you add to the principal\n@param _betHash bytes32 the bet\n@param _number uint the amount to add\n@return uint the totalPrincipal",
            "id": 2108,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2080,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2079,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "4451:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4451:14:10"
              }
            ],
            "name": "addTotalPrincipal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2078,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2075,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2108,
                  "src": "4383:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2074,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4383:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2077,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 2108,
                  "src": "4409:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2076,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4409:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4373:54:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2083,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2082,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2108,
                  "src": "4482:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2081,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4482:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4481:6:10"
            },
            "scope": 2635,
            "src": "4347:325:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2148,
              "nodeType": "Block",
              "src": "5113:205:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2129,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2122,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "5131:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2124,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2123,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2110,
                              "src": "5143:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5131:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2125,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3742,
                          "src": "5131:29:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2127,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5172:1:10",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2126,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5164:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2128,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5164:10:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "5131:43:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2121,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "5123:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5123:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2131,
                  "nodeType": "ExpressionStatement",
                  "src": "5123:52:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2132,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "5186:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2134,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2133,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2110,
                            "src": "5198:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5186:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2135,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "principalInOption",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3750,
                        "src": "5186:39:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 2137,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2136,
                        "name": "_option",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2112,
                        "src": "5226:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5186:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2138,
                      "name": "_number",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2114,
                      "src": "5238:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5186:59:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2140,
                  "nodeType": "ExpressionStatement",
                  "src": "5186:59:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2141,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "5263:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2143,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2142,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2110,
                          "src": "5275:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5263:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2144,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "principalInOption",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3750,
                      "src": "5263:39:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 2146,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2145,
                      "name": "_option",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2112,
                      "src": "5303:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5263:48:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2120,
                  "id": 2147,
                  "nodeType": "Return",
                  "src": "5256:55:10"
                }
              ]
            },
            "documentation": "@dev Function that lets you add to an option\n@param _betHash bytes32 of the bet you want to get\n@param _option uint the option you are betting on\n@param _number uint the amount to add\n@return uint the amount in that option",
            "id": 2149,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2117,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2116,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "5072:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5072:14:10"
              }
            ],
            "name": "addToOption",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2115,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2110,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2149,
                  "src": "4982:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2109,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4982:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2112,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2149,
                  "src": "5008:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2111,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5008:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2114,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 2149,
                  "src": "5030:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2113,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5030:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4972:76:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2119,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2149,
                  "src": "5103:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2118,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5103:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5102:6:10"
            },
            "scope": 2635,
            "src": "4952:366:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2174,
              "nodeType": "Block",
              "src": "5960:219:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2165,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2151,
                            "src": "6034:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2166,
                            "name": "_sender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2153,
                            "src": "6060:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2167,
                            "name": "_option",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2155,
                            "src": "6085:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2168,
                            "name": "_number",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2157,
                            "src": "6110:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2169,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6085,
                              "src": "6135:5:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 2170,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6135:12:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2163,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6082,
                            "src": "6000:3:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2164,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6000:16:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2171,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6000:161:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2162,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6089,
                      "src": "5977:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5977:194:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2161,
                  "id": 2173,
                  "nodeType": "Return",
                  "src": "5970:201:10"
                }
              ]
            },
            "documentation": "@dev Function that returns the hash a bet would have\n@param _betHash bytes32 the hash of the bet where place play will happen\n@param _sender address the address that wants to bet\n@param _option uint the option they want to bet on\n@param _number uint the parameter of the bet. This depends if it is an\nERC20 or ERC721 token\n@return bytes32 the hash of the bet the player is going to make",
            "id": 2175,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2151,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5811:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2150,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5811:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2153,
                  "name": "_sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5837:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2152,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5837:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2155,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5862:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2154,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5862:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2157,
                  "name": "_number",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5884:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2156,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5884:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5801:101:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2161,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2160,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2175,
                  "src": "5947:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2159,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5947:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5946:9:10"
            },
            "scope": 2635,
            "src": "5776:403:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2195,
              "nodeType": "Block",
              "src": "6329:69:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2193,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2186,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "6339:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2188,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2187,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2177,
                            "src": "6351:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6339:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2189,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "optionTitles",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3754,
                        "src": "6339:34:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                          "typeString": "mapping(uint256 => string storage ref)"
                        }
                      },
                      "id": 2191,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2190,
                        "name": "_option",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2179,
                        "src": "6374:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6339:43:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2192,
                      "name": "_title",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2181,
                      "src": "6385:6:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "6339:52:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 2194,
                  "nodeType": "ExpressionStatement",
                  "src": "6339:52:10"
                }
              ]
            },
            "documentation": null,
            "id": 2196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2184,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2183,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "6310:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6310:14:10"
              }
            ],
            "name": "setOptionTitle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2177,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2196,
                  "src": "6219:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2176,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6219:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2179,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2196,
                  "src": "6245:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2178,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6245:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2181,
                  "name": "_title",
                  "nodeType": "VariableDeclaration",
                  "scope": 2196,
                  "src": "6267:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2180,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6267:6:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6209:77:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2185,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6329:0:10"
            },
            "scope": 2635,
            "src": "6185:213:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2214,
              "nodeType": "Block",
              "src": "6536:96:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2205,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2198,
                            "src": "6564:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2204,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "6554:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2206,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6554:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2203,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "6546:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6546:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2208,
                  "nodeType": "ExpressionStatement",
                  "src": "6546:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2209,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "6592:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2211,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2210,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2198,
                        "src": "6604:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6592:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2212,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "kernelProxy",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3726,
                    "src": "6592:33:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2202,
                  "id": 2213,
                  "nodeType": "Return",
                  "src": "6585:40:10"
                }
              ]
            },
            "documentation": null,
            "id": 2215,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetKernelProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2198,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2215,
                  "src": "6455:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6455:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6445:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2201,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2215,
                  "src": "6523:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2200,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6523:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6522:9:10"
            },
            "scope": 2635,
            "src": "6419:213:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2233,
              "nodeType": "Block",
              "src": "6757:98:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2224,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2217,
                            "src": "6785:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2223,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "6775:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6775:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2222,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "6767:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6767:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2227,
                  "nodeType": "ExpressionStatement",
                  "src": "6767:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2228,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "6813:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2230,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2229,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2217,
                        "src": "6825:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6813:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2231,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "paymentsProxy",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3728,
                    "src": "6813:35:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2221,
                  "id": 2232,
                  "nodeType": "Return",
                  "src": "6806:42:10"
                }
              ]
            },
            "documentation": null,
            "id": 2234,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetPaymentsProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2218,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2217,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2234,
                  "src": "6676:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2216,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6676:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6666:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2220,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2234,
                  "src": "6744:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2219,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6744:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6743:9:10"
            },
            "scope": 2635,
            "src": "6638:217:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2252,
              "nodeType": "Block",
              "src": "6979:98:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2243,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2236,
                            "src": "7007:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2242,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "6997:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2244,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6997:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2241,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "6989:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6989:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2246,
                  "nodeType": "ExpressionStatement",
                  "src": "6989:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2247,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7035:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2249,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2248,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2236,
                        "src": "7047:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7035:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2250,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "paymentsToken",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3730,
                    "src": "7035:35:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2240,
                  "id": 2251,
                  "nodeType": "Return",
                  "src": "7028:42:10"
                }
              ]
            },
            "documentation": null,
            "id": 2253,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetPaymentsToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2236,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2253,
                  "src": "6899:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2235,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6899:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6889:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2239,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2253,
                  "src": "6966:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6966:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6965:9:10"
            },
            "scope": 2635,
            "src": "6861:216:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2271,
              "nodeType": "Block",
              "src": "7185:96:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2262,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2255,
                            "src": "7213:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2261,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "7203:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2263,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7203:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2260,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "7195:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7195:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2265,
                  "nodeType": "ExpressionStatement",
                  "src": "7195:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2266,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7241:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2268,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2267,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2255,
                        "src": "7253:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7241:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2269,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "oracleProxy",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3732,
                    "src": "7241:33:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2259,
                  "id": 2270,
                  "nodeType": "Return",
                  "src": "7234:40:10"
                }
              ]
            },
            "documentation": null,
            "id": 2272,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetOracleProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2256,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2255,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "7110:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2254,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7110:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7109:18:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2258,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "7172:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2257,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7172:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7171:9:10"
            },
            "scope": 2635,
            "src": "7083:198:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2290,
              "nodeType": "Block",
              "src": "7402:95:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2281,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2274,
                            "src": "7430:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2280,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "7420:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2282,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7420:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2279,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "7412:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7412:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2284,
                  "nodeType": "ExpressionStatement",
                  "src": "7412:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2285,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7458:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2287,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2286,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2274,
                        "src": "7470:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7458:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2288,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "termsProxy",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3734,
                    "src": "7458:32:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2278,
                  "id": 2289,
                  "nodeType": "Return",
                  "src": "7451:39:10"
                }
              ]
            },
            "documentation": null,
            "id": 2291,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetTermsProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2275,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2274,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2291,
                  "src": "7322:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2273,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7322:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7312:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2278,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2277,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2291,
                  "src": "7389:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2276,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7389:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7388:9:10"
            },
            "scope": 2635,
            "src": "7287:210:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2309,
              "nodeType": "Block",
              "src": "7617:94:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2300,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2293,
                            "src": "7645:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2299,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "7635:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7635:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2298,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "7627:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7627:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2303,
                  "nodeType": "ExpressionStatement",
                  "src": "7627:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2304,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7673:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2306,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2305,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2293,
                        "src": "7685:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7673:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2307,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "termsHash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3736,
                    "src": "7673:31:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2297,
                  "id": 2308,
                  "nodeType": "Return",
                  "src": "7666:38:10"
                }
              ]
            },
            "documentation": null,
            "id": 2310,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetTermsHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2294,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2293,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2310,
                  "src": "7537:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2292,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7537:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7527:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2296,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2310,
                  "src": "7604:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2295,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7604:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7603:9:10"
            },
            "scope": 2635,
            "src": "7503:208:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2322,
              "nodeType": "Block",
              "src": "7826:51:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2317,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "7843:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2319,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2318,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2312,
                        "src": "7855:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7843:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2320,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "title",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3738,
                    "src": "7843:27:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 2316,
                  "id": 2321,
                  "nodeType": "Return",
                  "src": "7836:34:10"
                }
              ]
            },
            "documentation": null,
            "id": 2323,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetTitle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2313,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2312,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2323,
                  "src": "7747:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2311,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7747:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7737:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2315,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2323,
                  "src": "7814:6:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2314,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7814:6:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7813:8:10"
            },
            "scope": 2635,
            "src": "7717:160:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2341,
              "nodeType": "Block",
              "src": "7993:93:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2332,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2325,
                            "src": "8021:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2331,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "8011:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2333,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8011:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2330,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "8003:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8003:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2335,
                  "nodeType": "ExpressionStatement",
                  "src": "8003:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2336,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "8049:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2338,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2337,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2325,
                        "src": "8061:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "8049:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2339,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "datetime",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3740,
                    "src": "8049:30:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2329,
                  "id": 2340,
                  "nodeType": "Return",
                  "src": "8042:37:10"
                }
              ]
            },
            "documentation": null,
            "id": 2342,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetDatetime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2326,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2325,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "7916:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2324,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7916:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7906:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2328,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "7983:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2327,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7983:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7982:6:10"
            },
            "scope": 2635,
            "src": "7883:203:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2360,
              "nodeType": "Block",
              "src": "8204:92:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2351,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2344,
                            "src": "8232:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2350,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "8222:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8222:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2349,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "8214:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2353,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8214:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2354,
                  "nodeType": "ExpressionStatement",
                  "src": "8214:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2355,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "8260:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2357,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2356,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2344,
                        "src": "8272:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "8260:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2358,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "creator",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3742,
                    "src": "8260:29:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2348,
                  "id": 2359,
                  "nodeType": "Return",
                  "src": "8253:36:10"
                }
              ]
            },
            "documentation": null,
            "id": 2361,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBetCreator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2345,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2344,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2361,
                  "src": "8124:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2343,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8124:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8114:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2348,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2347,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2361,
                  "src": "8191:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2346,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8191:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8190:9:10"
            },
            "scope": 2635,
            "src": "8092:204:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2379,
              "nodeType": "Block",
              "src": "8415:99:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2370,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2363,
                            "src": "8443:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2369,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "8433:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8433:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2368,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "8425:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8425:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2373,
                  "nodeType": "ExpressionStatement",
                  "src": "8425:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2374,
                        "name": "betRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3770,
                        "src": "8471:11:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                        }
                      },
                      "id": 2376,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2375,
                        "name": "_betHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2363,
                        "src": "8483:8:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "8471:21:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                        "typeString": "struct RegistryStorage.BetEntry storage ref"
                      }
                    },
                    "id": 2377,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "totalPrincipal",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3756,
                    "src": "8471:36:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2367,
                  "id": 2378,
                  "nodeType": "Return",
                  "src": "8464:43:10"
                }
              ]
            },
            "documentation": null,
            "id": 2380,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTotalPrincipal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2363,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2380,
                  "src": "8338:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2362,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8338:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8328:32:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2366,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2380,
                  "src": "8405:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2365,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8405:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8404:6:10"
            },
            "scope": 2635,
            "src": "8302:212:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2402,
              "nodeType": "Block",
              "src": "8658:111:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2391,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2382,
                            "src": "8686:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2390,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "8676:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8676:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2389,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "8668:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8668:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2394,
                  "nodeType": "ExpressionStatement",
                  "src": "8668:28:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2395,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "8714:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2397,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2396,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2382,
                          "src": "8726:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8714:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2398,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "principalInOption",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3750,
                      "src": "8714:39:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 2400,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2399,
                      "name": "_option",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2384,
                      "src": "8754:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8714:48:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2388,
                  "id": 2401,
                  "nodeType": "Return",
                  "src": "8707:55:10"
                }
              ]
            },
            "documentation": null,
            "id": 2403,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPrincipalInOption",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2385,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2382,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2403,
                  "src": "8559:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2381,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8559:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2384,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2403,
                  "src": "8585:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2383,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8585:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8549:54:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2388,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2387,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2403,
                  "src": "8648:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2386,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8648:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8647:6:10"
            },
            "scope": 2635,
            "src": "8520:249:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2419,
              "nodeType": "Block",
              "src": "8909:67:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2412,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "8926:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2414,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2413,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2405,
                          "src": "8938:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8926:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2415,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "optionTitles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3754,
                      "src": "8926:34:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                        "typeString": "mapping(uint256 => string storage ref)"
                      }
                    },
                    "id": 2417,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2416,
                      "name": "_option",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2407,
                      "src": "8961:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8926:43:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 2411,
                  "id": 2418,
                  "nodeType": "Return",
                  "src": "8919:50:10"
                }
              ]
            },
            "documentation": null,
            "id": 2420,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOptionTitle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2405,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2420,
                  "src": "8808:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2404,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8808:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2407,
                  "name": "_option",
                  "nodeType": "VariableDeclaration",
                  "scope": 2420,
                  "src": "8834:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2406,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8834:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8798:54:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2410,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2420,
                  "src": "8897:6:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2409,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8897:6:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8896:8:10"
            },
            "scope": 2635,
            "src": "8775:201:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2444,
              "nodeType": "Block",
              "src": "9131:140:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2431,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2422,
                            "src": "9165:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2432,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2424,
                            "src": "9175:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2430,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "9149:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2433,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9149:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2429,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "9141:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9141:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2435,
                  "nodeType": "ExpressionStatement",
                  "src": "9141:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2436,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "9209:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2438,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2437,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2422,
                            "src": "9221:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9209:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2439,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "9209:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2441,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2440,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2424,
                        "src": "9242:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "9209:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "id": 2442,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "player",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3759,
                    "src": "9209:55:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2428,
                  "id": 2443,
                  "nodeType": "Return",
                  "src": "9202:62:10"
                }
              ]
            },
            "documentation": null,
            "id": 2445,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetPlayer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2425,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2422,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2445,
                  "src": "9019:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2421,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9019:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2424,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2445,
                  "src": "9045:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2423,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9045:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9009:64:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2427,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2445,
                  "src": "9118:7:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2426,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9118:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9117:9:10"
            },
            "scope": 2635,
            "src": "8982:289:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2469,
              "nodeType": "Block",
              "src": "9423:140:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2456,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2447,
                            "src": "9457:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2457,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2449,
                            "src": "9467:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2455,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "9441:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2458,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9441:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2454,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "9433:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9433:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2460,
                  "nodeType": "ExpressionStatement",
                  "src": "9433:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2461,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "9501:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2463,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2462,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2447,
                            "src": "9513:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9501:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2464,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "9501:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2466,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2465,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2449,
                        "src": "9534:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "9501:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "id": 2467,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "option",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3761,
                    "src": "9501:55:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2453,
                  "id": 2468,
                  "nodeType": "Return",
                  "src": "9494:62:10"
                }
              ]
            },
            "documentation": null,
            "id": 2470,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetOption",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2447,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2470,
                  "src": "9314:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2446,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9314:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2449,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2470,
                  "src": "9340:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2448,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9340:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9304:64:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2452,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2470,
                  "src": "9413:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2451,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9413:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9412:6:10"
            },
            "scope": 2635,
            "src": "9277:286:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2494,
              "nodeType": "Block",
              "src": "9718:143:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2481,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2472,
                            "src": "9752:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2482,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2474,
                            "src": "9762:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2480,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "9736:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9736:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2479,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "9728:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9728:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2485,
                  "nodeType": "ExpressionStatement",
                  "src": "9728:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2486,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "9796:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2488,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2487,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2472,
                            "src": "9808:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9796:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2489,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "9796:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2491,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2490,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2474,
                        "src": "9829:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "9796:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "id": 2492,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "principal",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3763,
                    "src": "9796:58:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2478,
                  "id": 2493,
                  "nodeType": "Return",
                  "src": "9789:65:10"
                }
              ]
            },
            "documentation": null,
            "id": 2495,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetPrincipal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2472,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2495,
                  "src": "9609:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2471,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9609:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2474,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2495,
                  "src": "9635:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2473,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9635:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9599:64:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2478,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2477,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2495,
                  "src": "9708:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2476,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9708:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9707:6:10"
            },
            "scope": 2635,
            "src": "9569:292:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2519,
              "nodeType": "Block",
              "src": "10015:142:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2506,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2497,
                            "src": "10049:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2507,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2499,
                            "src": "10059:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2505,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "10033:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10033:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2504,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "10025:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10025:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2510,
                  "nodeType": "ExpressionStatement",
                  "src": "10025:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2511,
                            "name": "betRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "10093:11:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                            }
                          },
                          "id": 2513,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2512,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2497,
                            "src": "10105:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10093:21:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                            "typeString": "struct RegistryStorage.BetEntry storage ref"
                          }
                        },
                        "id": 2514,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "playerBets",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3746,
                        "src": "10093:32:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                          "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                        }
                      },
                      "id": 2516,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2515,
                        "name": "_playerBetHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2499,
                        "src": "10126:14:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "10093:48:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                        "typeString": "struct RegistryStorage.PlayerBet storage ref"
                      }
                    },
                    "id": 2517,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "returned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3765,
                    "src": "10093:57:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2503,
                  "id": 2518,
                  "nodeType": "Return",
                  "src": "10086:64:10"
                }
              ]
            },
            "documentation": null,
            "id": 2520,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPlayerBetReturned",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2500,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2497,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2520,
                  "src": "9906:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2496,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9906:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2499,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2520,
                  "src": "9932:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2498,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9932:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9896:64:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2502,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2520,
                  "src": "10005:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2501,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10005:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10004:6:10"
            },
            "scope": 2635,
            "src": "9867:290:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2540,
              "nodeType": "Block",
              "src": "10226:111:10",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2527,
                          "name": "betRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3770,
                          "src": "10240:11:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                          }
                        },
                        "id": 2529,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2528,
                          "name": "_betHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2522,
                          "src": "10252:8:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10240:21:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                          "typeString": "struct RegistryStorage.BetEntry storage ref"
                        }
                      },
                      "id": 2530,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "creator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3742,
                      "src": "10240:29:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2532,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10281:1:10",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10273:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2533,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10273:10:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10240:43:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2537,
                  "nodeType": "IfStatement",
                  "src": "10236:73:10",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 2535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10304:5:10",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 2526,
                    "id": 2536,
                    "nodeType": "Return",
                    "src": "10297:12:10"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "10326:4:10",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 2526,
                  "id": 2539,
                  "nodeType": "Return",
                  "src": "10319:11:10"
                }
              ]
            },
            "documentation": null,
            "id": 2541,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "betExists",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2522,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2541,
                  "src": "10182:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2521,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10182:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10181:18:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2525,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2541,
                  "src": "10220:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2524,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10220:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10219:6:10"
            },
            "scope": 2635,
            "src": "10163:174:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2572,
              "nodeType": "Block",
              "src": "10436:175:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2552,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2543,
                            "src": "10464:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2551,
                          "name": "betExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2541,
                          "src": "10454:9:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 2553,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10454:19:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2550,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "10446:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2554,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10446:28:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2555,
                  "nodeType": "ExpressionStatement",
                  "src": "10446:28:10"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2566,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2556,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "10488:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2558,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2557,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2543,
                              "src": "10500:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10488:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2559,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "playerBets",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3746,
                          "src": "10488:32:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                          }
                        },
                        "id": 2561,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2560,
                          "name": "_playerBetHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2545,
                          "src": "10521:14:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10488:48:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                          "typeString": "struct RegistryStorage.PlayerBet storage ref"
                        }
                      },
                      "id": 2562,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "player",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3759,
                      "src": "10488:55:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10555:1:10",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2563,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10547:7:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2565,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10547:10:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10488:69:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2569,
                  "nodeType": "IfStatement",
                  "src": "10484:99:10",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 2567,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10578:5:10",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 2549,
                    "id": 2568,
                    "nodeType": "Return",
                    "src": "10571:12:10"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "10600:4:10",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 2549,
                  "id": 2571,
                  "nodeType": "Return",
                  "src": "10593:11:10"
                }
              ]
            },
            "documentation": null,
            "id": 2573,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "playerBetExists",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2546,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2543,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "10368:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2542,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10368:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2545,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "10386:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2544,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10386:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10367:42:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2549,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2548,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "10430:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2547,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10430:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10429:6:10"
            },
            "scope": 2635,
            "src": "10343:268:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2605,
              "nodeType": "Block",
              "src": "10799:167:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2588,
                            "name": "_betHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2575,
                            "src": "10833:8:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2589,
                            "name": "_playerBetHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2577,
                            "src": "10843:14:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 2587,
                          "name": "playerBetExists",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "10817:15:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,bytes32) view returns (bool)"
                          }
                        },
                        "id": 2590,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10817:41:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2586,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "10809:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10809:50:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2592,
                  "nodeType": "ExpressionStatement",
                  "src": "10809:50:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2593,
                              "name": "betRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3770,
                              "src": "10869:11:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3757_storage_$",
                                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry storage ref)"
                              }
                            },
                            "id": 2595,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2594,
                              "name": "_betHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2575,
                              "src": "10881:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10869:21:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BetEntry_$3757_storage",
                              "typeString": "struct RegistryStorage.BetEntry storage ref"
                            }
                          },
                          "id": 2596,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "playerBets",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3746,
                          "src": "10869:32:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3766_storage_$",
                            "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet storage ref)"
                          }
                        },
                        "id": 2598,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2597,
                          "name": "_playerBetHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2577,
                          "src": "10902:14:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10869:48:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PlayerBet_$3766_storage",
                          "typeString": "struct RegistryStorage.PlayerBet storage ref"
                        }
                      },
                      "id": 2599,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "returned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3765,
                      "src": "10869:57:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2600,
                      "name": "_returned",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2579,
                      "src": "10929:9:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "10869:69:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2602,
                  "nodeType": "ExpressionStatement",
                  "src": "10869:69:10"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "10955:4:10",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 2585,
                  "id": 2604,
                  "nodeType": "Return",
                  "src": "10948:11:10"
                }
              ]
            },
            "documentation": null,
            "id": 2606,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 2582,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2581,
                  "name": "onlyAuthorised",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1862,
                  "src": "10758:14:10",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "10758:14:10"
              }
            ],
            "name": "setPlayerBetReturned",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2580,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2575,
                  "name": "_betHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2606,
                  "src": "10656:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10656:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2577,
                  "name": "_playerBetHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2606,
                  "src": "10682:22:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2576,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10682:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2579,
                  "name": "_returned",
                  "nodeType": "VariableDeclaration",
                  "scope": 2606,
                  "src": "10714:14:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2578,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10714:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10646:88:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2584,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2606,
                  "src": "10789:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2583,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10789:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10788:6:10"
            },
            "scope": 2635,
            "src": "10617:349:10",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2633,
              "nodeType": "Block",
              "src": "11023:209:10",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2630,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 2626,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 2622,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 2618,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 2614,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2612,
                                  "name": "_sender",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2608,
                                  "src": "11054:7:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 2613,
                                  "name": "betKernel",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3716,
                                  "src": "11065:9:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "11054:20:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "||",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 2617,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2615,
                                  "name": "_sender",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2608,
                                  "src": "11090:7:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 2616,
                                  "name": "betPayments",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3718,
                                  "src": "11101:11:10",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "11090:22:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "11054:58:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 2621,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2619,
                                "name": "_sender",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2608,
                                "src": "11128:7:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 2620,
                                "name": "betOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3720,
                                "src": "11139:9:10",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "11128:20:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "11054:94:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 2625,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2623,
                              "name": "_sender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2608,
                              "src": "11164:7:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 2624,
                              "name": "betTerms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3722,
                              "src": "11175:8:10",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "11164:19:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "11054:129:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 2629,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2627,
                            "name": "_sender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2608,
                            "src": "11199:7:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2628,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4271,
                            "src": "11210:5:10",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "11199:16:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "11054:161:10",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2611,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6098,
                        6099
                      ],
                      "referencedDeclaration": 6098,
                      "src": "11033:7:10",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11033:192:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2632,
                  "nodeType": "ExpressionStatement",
                  "src": "11033:192:10"
                }
              ]
            },
            "documentation": null,
            "id": 2634,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAuthorised",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2609,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2608,
                  "name": "_sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2634,
                  "src": "10994:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2607,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10994:7:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10993:17:10"
            },
            "payable": false,
            "returnParameters": {
              "id": 2610,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11023:0:10"
            },
            "scope": 2635,
            "src": "10972:260:10",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2636,
        "src": "522:10712:10"
      }
    ],
    "src": "0:11235:10"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "70": {
      "events": {},
      "links": {},
      "address": "0x273a59Ea33416BC2Efa8b3434e041Ae270a643E9",
      "transactionHash": "0xc856d2a30cc5d64163d027fe81b1e20db62890d804951b5ee840501b1bf274a7"
    },
    "5777": {
      "events": {},
      "links": {},
      "address": "0xC0E4E78a6Df7486E7de614E6A165dd80037B165d",
      "transactionHash": "0x87661c577fd2c76d222c6e752b662a2c60ecc6c060e20cddddeb8155a78024bc"
    }
  },
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-11-09T16:16:18.378Z"
}