{
  "contractName": "MockDgxStorage",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "read_user_for_demurrage",
      "outputs": [
        {
          "name": "_raw_balance",
          "type": "uint256"
        },
        {
          "name": "_payment_date",
          "type": "uint256"
        },
        {
          "name": "_no_demurrage_fee",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_no_demurrage_fee",
          "type": "bool"
        },
        {
          "name": "_no_transfer_fee",
          "type": "bool"
        }
      ],
      "name": "update_user_fees_configs",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "deduct_demurrage",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "read_demurrage_config_underlying",
      "outputs": [
        {
          "name": "_base",
          "type": "uint256"
        },
        {
          "name": "_rate",
          "type": "uint256"
        },
        {
          "name": "_collector",
          "type": "address"
        },
        {
          "name": "_no_demurrage_fee",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_of",
          "type": "address"
        },
        {
          "name": "_byMinutes",
          "type": "uint256"
        }
      ],
      "name": "modify_last_payment_date",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "read_total_supply",
      "outputs": [
        {
          "name": "_totalSupply",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "show_demurraged_balance",
      "outputs": [
        {
          "name": "_actual_balance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_account",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "put_approve",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_recipient",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        },
        {
          "name": "_transfer_from",
          "type": "bool"
        }
      ],
      "name": "put_transfer",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "read_user_fees_configs",
      "outputs": [
        {
          "name": "_no_demurrage_fee",
          "type": "bool"
        },
        {
          "name": "_no_transfer_fee",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "read_demurrage_config",
      "outputs": [
        {
          "name": "_collector_balance",
          "type": "uint256"
        },
        {
          "name": "_base",
          "type": "uint256"
        },
        {
          "name": "_rate",
          "type": "uint256"
        },
        {
          "name": "_collector",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        }
      ],
      "name": "read_allowance",
      "outputs": [
        {
          "name": "_allowance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "read_user_for_transfer",
      "outputs": [
        {
          "name": "_raw_balance",
          "type": "uint256"
        },
        {
          "name": "_no_transfer_fee",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_for",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "mint_dgx_for",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "read_transfer_config",
      "outputs": [
        {
          "name": "_collector_balance",
          "type": "uint256"
        },
        {
          "name": "_base",
          "type": "uint256"
        },
        {
          "name": "_rate",
          "type": "uint256"
        },
        {
          "name": "_collector",
          "type": "address"
        },
        {
          "name": "_no_transfer_fee",
          "type": "bool"
        },
        {
          "name": "_minimum_transfer_amount",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_DummyDGXInteractive",
          "type": "address"
        }
      ],
      "name": "setInteractive",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506000806000806000f091506000806000f090506298968060006002016003016000016000018190555060a5600060020160030160000160010181905550612710600060020160030160020160000181905550600d600060020160030160020160010181905550620f424060006002016002018190555060008060020160010160006101000a81548160ff02191690831515021790555060008060020160010160016101000a81548160ff0219169083151502179055507f312e302e30000000000000000000000000000000000000000000000000000000600060020160000181600019169055506000806009018190555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506121db806101546000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309a0c130146100eb5780630ca9f65c1461015457806338ec8116146101c7578063493f8d30146102225780635722b67f1461029257806357e7946f146102f757806376cab95214610322578063779b742c1461037957806392846ab6146103fe578063a6e653f6146104af578063a77af36e14610515578063d28b43f414610581578063e0fe1d46146105f8578063e1ed956b1461065a578063e2958974146106bf578063f7c9c89a1461073d575b600080fd5b3480156100f757600080fd5b5061012c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610780565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34801561016057600080fd5b506101ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803515159060200190929190505050610896565b604051808215151515815260200191505060405180910390f35b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bf565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b50610237610a25565b604051808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b34801561029e57600080fd5b506102dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a95565b604051808215151515815260200191505060405180910390f35b34801561030357600080fd5b5061030c610b4f565b6040518082815260200191505060405180910390f35b34801561032e57600080fd5b50610363600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5b565b6040518082815260200191505060405180910390f35b34801561038557600080fd5b506103e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bec565b604051808215151515815260200191505060405180910390f35b34801561040a57600080fd5b50610495600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610ca6565b604051808215151515815260200191505060405180910390f35b3480156104bb57600080fd5b506104f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd4565b6040518083151515158152602001821515151581526020019250505060405180910390f35b34801561052157600080fd5b5061052a61108c565b604051808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561058d57600080fd5b506105e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611184565b6040518082815260200191505060405180910390f35b34801561060457600080fd5b50610639600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611213565b60405180838152602001821515151581526020019250505060405180910390f35b34801561066657600080fd5b506106a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112be565b604051808215151515815260200191505060405180910390f35b3480156106cb57600080fd5b506106d461138f565b604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183151515158152602001828152602001965050505050505060405180910390f35b34801561074957600080fd5b5061077e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611481565b005b600080600080600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001015492506000600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000015491506000600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160009054906101000a900460ff168061088d5750600060020160010160009054906101000a900460ff165b90509193909250565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f457600080fd5b826000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160006101000a81548160ff021916908315150217905550816000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160016101000a81548160ff021916908315150217905550600190509392505050565b60006109c9611f46565b6109d283611521565b90506109dd81611616565b9050610a1b81602001516000015182602001516040015160200151836020015160600151600001516020015184600001516000015160200151611821565b6001915050919050565b600080600080600060020160030160000160000154935060006002016003016000016001015492506000800160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600060020160010160009054906101000a900460ff16905090919293565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af357600080fd5b603c820242036000600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600001819055506001905092915050565b60008060090154905090565b6000610b65611f46565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc157600080fd5b610bca83611521565b9050610bd581611616565b905080602001516040015160200151915050919050565b6000610bf6611f75565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c5257600080fd5b610c5c8585611184565b81600001818152505060008160000151118015610c795750600083115b15610c8357600080fd5b82816020018181525050610c9c85858360200151611935565b9150509392505050565b6000610cb0611f8f565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d0c57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610d4757600080fd5b60011515610d54886109bf565b1515141515610d6257600080fd5b60011515610d6f876109bf565b1515141515610d7d57600080fd5b610d8561138f565b8660600151600001516000018760600151604001886060015160600189606001516020018a606001516080018b6060015160a0018681525086151515158152508673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250868152508681525086815250505050505050806060015160a001518410151515610e1e57600080fd5b610e2787611213565b82600001516020015160000183600001516040018215151515815250828152505050610e5286611213565b82602001516020015160000183602001516040018215151515815250828152505050838160a0018181525050828160e00190151590811515815250506001151581606001516080015115151480610eb55750600115158160000151604001511515145b15610eca57610ec3816119cc565b9050610ed6565b610ed381611a86565b90505b600115158160e0015115151415610f8a5760011515610ef4866109bf565b1515141515610f0257600080fd5b610f0c8786611184565b8160400151602001516000018181525050610f3884826040015160200151611b7b90919063ffffffff16565b816040015160200181905250610f8387826000015160200151602001518884602001516020015160200151856060015160000151602001518a87604001516020015160200151611baf565b9150610fbe565b610fbb8782600001516020015160200151888460200151602001516020015185606001516000015160200151611d58565b91505b811515610fca57600080fd5b5095945050505050565b6000806000600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160009054906101000a900460ff1691506000600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160019054906101000a900460ff169050915091565b600080600080600080600a0160008060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600101549450600060020160010160009054906101000a900460ff1690506000800160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150801561115a57600093506000925061117d565b600060020160030160000160000154935060006002016003016000016001015492505b5090919293565b600080600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001015491506000600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160019054906101000a900460ff169050915091565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561131c57600080fd5b816000600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010160008282540192505081905550816000600901600082825401925050819055506001905092915050565b6000806000806000806000600a0160008060000160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600101549550600060020160030160020160000154945060006002016003016002016001015493506000800160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600060020160010160019054906101000a900460ff1691506000600201600201549050909192939495565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114dd57600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611529611f46565b61153161108c565b8460000151600001516000018560000151602001866000015160400187600001516060018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250848152508481525084815250505050508181602001516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115da82610780565b83602001516040015160000184602001516060015160000151600001856020015160200183151515158152508381525083815250505050919050565b61161e611f46565b60008260200151606001516000015160000151141561164e57428260200151606001516000015160000181815250505b60011515826020015160200151151514806116a4575081600001516060015173ffffffffffffffffffffffffffffffffffffffff1682602001516000015173ffffffffffffffffffffffffffffffffffffffff16145b156117005781602001516040015160000151826020015160400151602001818152505081600001516000015160000151826000015160000151602001818152505042826020015160600151600001516020018181525050611819565b61171e62015180836020015160600151611e7590919063ffffffff16565b826020015160600181905250600082602001516060015160200151141561178057816020015160400151600001518260200151604001516020018181525050816000015160000151600001518260000151600001516020018181525050611818565b816000015160200151826000015160400151836020015160400151600001518460200151606001516020015102028115156117b757fe5b048260400181815250506117e08260400151836020015160400151611b7b90919063ffffffff16565b82602001516040018190525061180b8260400151836000015160000151611f0c90919063ffffffff16565b8260000151600001819052505b5b819050919050565b806000600a0160008060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550826000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550816000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000018190555050505050565b6000816000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b6119d4611f8f565b60008260c00181815250506119fa8260a001518360800151611f0c90919063ffffffff16565b8260800181905250611a25826080015160200151836000015160200151611b7b90919063ffffffff16565b826000015160200181905250816060015160000151600001518260600151600001516020018181525050611a72826080015160200151836020015160200151611f0c90919063ffffffff16565b826020015160200181905250819050919050565b611a8e611f8f565b8160600151604001518260600151606001518360a0015102811515611aaf57fe5b048260c00181815250508160a0015182608001516000018181525050611ae68260c001518360800151611b7b90919063ffffffff16565b8260800181905250611b0d8260c00151836060015160000151611f0c90919063ffffffff16565b826060015160000181905250611b388260a00151836000015160200151611b7b90919063ffffffff16565b826000015160200181905250611b67826080015160200151836020015160200151611f0c90919063ffffffff16565b826020015160200181905250819050919050565b611b83611f75565b82600001518211151515611b9657600080fd5b8290508183600001510381602001818152505092915050565b6000866000600a0160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550846000600a0160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550836000600a0160008060000160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550816000600a0160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050979650505050505050565b6000846000600a0160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550826000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550816000600a0160008060000160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600101819055506001905095945050505050565b611e7d611ff5565b6000808492508460000151600001514210151515611e9a57600080fd5b846000015160000151420391508382811515611eb257fe5b04836020018181525050838360200151029050600083602001511415611eed5784600001516000015183600001516020018181525050611f04565b611efb836000015182611f0c565b83600001819052505b505092915050565b611f14611f75565b82600001518284600001510110151515611f2d57600080fd5b8290508183600001510181602001818152505092915050565b6101a060405190810160405280611f5b612016565b8152602001611f6861205b565b8152602001600081525090565b604080519081016040528060008152602001600081525090565b6102e060405190810160405280611fa46120a8565b8152602001611fb16120a8565b8152602001611fbe6120e8565b8152602001611fcb61211f565b8152602001611fd8612174565b815260200160008152602001600081526020016000151581525090565b606060405190810160405280612009612174565b8152602001600081525090565b60a06040519081016040528061202a612174565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60e060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600015158152602001612095612174565b81526020016120a261218e565b81525090565b608060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016120d9612174565b81526020016000151581525090565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001612119612174565b81525090565b60e060405190810160405280612133612174565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600081525090565b604080519081016040528060008152602001600081525090565b6060604051908101604052806121a2612174565b81526020016000815250905600a165627a7a7230582073bb651f19cc323652b04c3718e255733f3801e4c6a90b404139be9491d2c30b0029",
  "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309a0c130146100eb5780630ca9f65c1461015457806338ec8116146101c7578063493f8d30146102225780635722b67f1461029257806357e7946f146102f757806376cab95214610322578063779b742c1461037957806392846ab6146103fe578063a6e653f6146104af578063a77af36e14610515578063d28b43f414610581578063e0fe1d46146105f8578063e1ed956b1461065a578063e2958974146106bf578063f7c9c89a1461073d575b600080fd5b3480156100f757600080fd5b5061012c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610780565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34801561016057600080fd5b506101ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803515159060200190929190505050610896565b604051808215151515815260200191505060405180910390f35b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bf565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b50610237610a25565b604051808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b34801561029e57600080fd5b506102dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a95565b604051808215151515815260200191505060405180910390f35b34801561030357600080fd5b5061030c610b4f565b6040518082815260200191505060405180910390f35b34801561032e57600080fd5b50610363600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5b565b6040518082815260200191505060405180910390f35b34801561038557600080fd5b506103e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bec565b604051808215151515815260200191505060405180910390f35b34801561040a57600080fd5b50610495600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610ca6565b604051808215151515815260200191505060405180910390f35b3480156104bb57600080fd5b506104f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd4565b6040518083151515158152602001821515151581526020019250505060405180910390f35b34801561052157600080fd5b5061052a61108c565b604051808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561058d57600080fd5b506105e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611184565b6040518082815260200191505060405180910390f35b34801561060457600080fd5b50610639600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611213565b60405180838152602001821515151581526020019250505060405180910390f35b34801561066657600080fd5b506106a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112be565b604051808215151515815260200191505060405180910390f35b3480156106cb57600080fd5b506106d461138f565b604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183151515158152602001828152602001965050505050505060405180910390f35b34801561074957600080fd5b5061077e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611481565b005b600080600080600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001015492506000600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000015491506000600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160009054906101000a900460ff168061088d5750600060020160010160009054906101000a900460ff165b90509193909250565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f457600080fd5b826000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160006101000a81548160ff021916908315150217905550816000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160016101000a81548160ff021916908315150217905550600190509392505050565b60006109c9611f46565b6109d283611521565b90506109dd81611616565b9050610a1b81602001516000015182602001516040015160200151836020015160600151600001516020015184600001516000015160200151611821565b6001915050919050565b600080600080600060020160030160000160000154935060006002016003016000016001015492506000800160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600060020160010160009054906101000a900460ff16905090919293565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af357600080fd5b603c820242036000600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600001819055506001905092915050565b60008060090154905090565b6000610b65611f46565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc157600080fd5b610bca83611521565b9050610bd581611616565b905080602001516040015160200151915050919050565b6000610bf6611f75565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c5257600080fd5b610c5c8585611184565b81600001818152505060008160000151118015610c795750600083115b15610c8357600080fd5b82816020018181525050610c9c85858360200151611935565b9150509392505050565b6000610cb0611f8f565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d0c57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610d4757600080fd5b60011515610d54886109bf565b1515141515610d6257600080fd5b60011515610d6f876109bf565b1515141515610d7d57600080fd5b610d8561138f565b8660600151600001516000018760600151604001886060015160600189606001516020018a606001516080018b6060015160a0018681525086151515158152508673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250868152508681525086815250505050505050806060015160a001518410151515610e1e57600080fd5b610e2787611213565b82600001516020015160000183600001516040018215151515815250828152505050610e5286611213565b82602001516020015160000183602001516040018215151515815250828152505050838160a0018181525050828160e00190151590811515815250506001151581606001516080015115151480610eb55750600115158160000151604001511515145b15610eca57610ec3816119cc565b9050610ed6565b610ed381611a86565b90505b600115158160e0015115151415610f8a5760011515610ef4866109bf565b1515141515610f0257600080fd5b610f0c8786611184565b8160400151602001516000018181525050610f3884826040015160200151611b7b90919063ffffffff16565b816040015160200181905250610f8387826000015160200151602001518884602001516020015160200151856060015160000151602001518a87604001516020015160200151611baf565b9150610fbe565b610fbb8782600001516020015160200151888460200151602001516020015185606001516000015160200151611d58565b91505b811515610fca57600080fd5b5095945050505050565b6000806000600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160009054906101000a900460ff1691506000600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160019054906101000a900460ff169050915091565b600080600080600080600a0160008060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600101549450600060020160010160009054906101000a900460ff1690506000800160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150801561115a57600093506000925061117d565b600060020160030160000160000154935060006002016003016000016001015492505b5090919293565b600080600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001015491506000600a0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160000160019054906101000a900460ff169050915091565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561131c57600080fd5b816000600a0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010160008282540192505081905550816000600901600082825401925050819055506001905092915050565b6000806000806000806000600a0160008060000160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600101549550600060020160030160020160000154945060006002016003016002016001015493506000800160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600060020160010160019054906101000a900460ff1691506000600201600201549050909192939495565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114dd57600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611529611f46565b61153161108c565b8460000151600001516000018560000151602001866000015160400187600001516060018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250848152508481525084815250505050508181602001516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115da82610780565b83602001516040015160000184602001516060015160000151600001856020015160200183151515158152508381525083815250505050919050565b61161e611f46565b60008260200151606001516000015160000151141561164e57428260200151606001516000015160000181815250505b60011515826020015160200151151514806116a4575081600001516060015173ffffffffffffffffffffffffffffffffffffffff1682602001516000015173ffffffffffffffffffffffffffffffffffffffff16145b156117005781602001516040015160000151826020015160400151602001818152505081600001516000015160000151826000015160000151602001818152505042826020015160600151600001516020018181525050611819565b61171e62015180836020015160600151611e7590919063ffffffff16565b826020015160600181905250600082602001516060015160200151141561178057816020015160400151600001518260200151604001516020018181525050816000015160000151600001518260000151600001516020018181525050611818565b816000015160200151826000015160400151836020015160400151600001518460200151606001516020015102028115156117b757fe5b048260400181815250506117e08260400151836020015160400151611b7b90919063ffffffff16565b82602001516040018190525061180b8260400151836000015160000151611f0c90919063ffffffff16565b8260000151600001819052505b5b819050919050565b806000600a0160008060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550826000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550816000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000018190555050505050565b6000816000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b6119d4611f8f565b60008260c00181815250506119fa8260a001518360800151611f0c90919063ffffffff16565b8260800181905250611a25826080015160200151836000015160200151611b7b90919063ffffffff16565b826000015160200181905250816060015160000151600001518260600151600001516020018181525050611a72826080015160200151836020015160200151611f0c90919063ffffffff16565b826020015160200181905250819050919050565b611a8e611f8f565b8160600151604001518260600151606001518360a0015102811515611aaf57fe5b048260c00181815250508160a0015182608001516000018181525050611ae68260c001518360800151611b7b90919063ffffffff16565b8260800181905250611b0d8260c00151836060015160000151611f0c90919063ffffffff16565b826060015160000181905250611b388260a00151836000015160200151611b7b90919063ffffffff16565b826000015160200181905250611b67826080015160200151836020015160200151611f0c90919063ffffffff16565b826020015160200181905250819050919050565b611b83611f75565b82600001518211151515611b9657600080fd5b8290508183600001510381602001818152505092915050565b6000866000600a0160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550846000600a0160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550836000600a0160008060000160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550816000600a0160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050979650505050505050565b6000846000600a0160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550826000600a0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160010181905550816000600a0160008060000160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600101819055506001905095945050505050565b611e7d611ff5565b6000808492508460000151600001514210151515611e9a57600080fd5b846000015160000151420391508382811515611eb257fe5b04836020018181525050838360200151029050600083602001511415611eed5784600001516000015183600001516020018181525050611f04565b611efb836000015182611f0c565b83600001819052505b505092915050565b611f14611f75565b82600001518284600001510110151515611f2d57600080fd5b8290508183600001510181602001818152505092915050565b6101a060405190810160405280611f5b612016565b8152602001611f6861205b565b8152602001600081525090565b604080519081016040528060008152602001600081525090565b6102e060405190810160405280611fa46120a8565b8152602001611fb16120a8565b8152602001611fbe6120e8565b8152602001611fcb61211f565b8152602001611fd8612174565b815260200160008152602001600081526020016000151581525090565b606060405190810160405280612009612174565b8152602001600081525090565b60a06040519081016040528061202a612174565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60e060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600015158152602001612095612174565b81526020016120a261218e565b81525090565b608060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016120d9612174565b81526020016000151581525090565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001612119612174565b81525090565b60e060405190810160405280612133612174565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152602001600081525090565b604080519081016040528060008152602001600081525090565b6060604051908101604052806121a2612174565b81526020016000815250905600a165627a7a7230582073bb651f19cc323652b04c3718e255733f3801e4c6a90b404139be9491d2c30b0029",
  "sourceMap": "92:97:45:-;;;141:46;8:9:-1;5:2;;;30:1;27;20:12;5:2;141:46:45;1272:28:70;1306:27;1391:1;1389;1387;1380:13;1356:37;;1434:1;1432;1430;1423:13;1400:36;;1484:8;1448:6;:13;;:18;;:28;;:33;;:44;;;;1534:3;1498:6;:13;;:18;;:28;;:33;;:39;;;;1578:5;1543:6;:13;;:18;;:27;;:32;;:40;;;;1624:2;1589:6;:13;;:18;;:27;;:32;;:37;;;;1672:7;1632:6;:13;;:37;;:47;;;;1718:5;1685:6;:13;;:30;;;:38;;;;;;;;;;;;;;;;;;1761:5;1729:6;:13;;:29;;;:37;;;;;;;;;;;;;;;;;;1772:39;:6;:13;;:29;;:39;;;;;;;1839:1;1817:6;:19;;:23;;;;1853:10;1846:4;;:17;;;;;;;;;;;;;;;;;;1239:629;;92:97:45;;;;;;",
  "deployedSourceMap": "92:97:45:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4107:447:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4107:447:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8321:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8321:340:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11416:435;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11416:435:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2840:388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2840:388:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9178:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9178:250:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4558:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4558:135:70;;;;;;;;;;;;;;;;;;;;;;;5282:323;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5282:323:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7891:426;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7891:426:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5609:2278;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5609:2278:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4896:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4896:301:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2261:575;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2261:575:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4697:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4697:195:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3834:269;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3834:269:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8794:245;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8794:245:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3232:598;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3232:598:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1872:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1872:138:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;4107:447;4202:20;4230:21;4259:22;4311:6;:12;;:22;4324:8;4311:22;;;;;;;;;;;;;;;:27;;:39;;;4296:54;;4372:6;:12;;:22;4385:8;4372:22;;;;;;;;;;;;;;;:27;;:45;;;4356:61;;4443:6;:12;;:22;4456:8;4443:22;;;;;;;;;;;;;;;:29;;:46;;;;;;;;;;;;:106;;;;4519:6;:13;;:30;;;;;;;;;;;;4443:106;4423:126;;4107:447;;;;;:::o;8321:340::-;8482:13;2140:23;;;;;;;;;;;2126:37;;:10;:37;;;2118:46;;;;;;;;8551:17;8505:6;:12;;:19;8518:5;8505:19;;;;;;;;;;;;;;;:26;;:43;;;:63;;;;;;;;;;;;;;;;;;8619:16;8574:6;:12;;:19;8587:5;8574:19;;;;;;;;;;;;;;;:26;;:42;;;:61;;;;;;;;;;;;;;;;;;8652:4;8641:15;;8321:340;;;;;:::o;11416:435::-;11481:13;11504:44;;:::i;:::-;11551:26;11571:5;11551:19;:26::i;:::-;11504:73;;11596:31;11616:10;11596:19;:31::i;:::-;11583:44;;11633:192;11666:10;:15;;;:23;;;11697:10;:15;;;:23;;;:28;;;11733:10;:15;;;:28;;;:33;;;:38;;;11779:10;:17;;;:35;;;:40;;;11633:25;:192::i;:::-;11842:4;11831:15;;11416:435;;;;:::o;2840:388::-;2928:13;2949;2970:18;2996:22;3041:6;:13;;:18;;:28;;:33;;;3033:41;;3088:6;:13;;:18;;:28;;:33;;;3080:41;;3140:6;:17;;:27;;;;;;;;;;;;3127:40;;3193:6;:13;;:30;;;;;;;;;;;;3173:50;;2840:388;;;;:::o;9178:250::-;9306:13;2140:23;;;;;;;;;;;2126:37;;:10;:37;;;2118:46;;;;;;;;9392:9;9379:10;:22;9372:3;:30;9329:6;:12;;:17;9342:3;9329:17;;;;;;;;;;;;;;;:22;;:40;;:73;;;;9419:4;9408:15;;9178:250;;;;:::o;4558:135::-;4624:20;4669:6;:19;;;4654:34;;4558:135;:::o;5282:323::-;5392:23;5425:44;;:::i;:::-;2140:23;;;;;;;;;;;2126:37;;:10;:37;;;2118:46;;;;;;;;5472:26;5492:5;5472:19;:26::i;:::-;5425:73;;5517:31;5537:10;5517:19;:31::i;:::-;5504:44;;5572:10;:15;;;:23;;;:28;;;5554:46;;5282:323;;;;:::o;7891:426::-;8030:13;8053:27;;:::i;:::-;2140:23;;;;;;;;;;;2126:37;;:10;:37;;;2118:46;;;;;;;;8096:34;8111:8;8121;8096:14;:34::i;:::-;8087:2;:6;;:43;;;;;8151:1;8142:2;:6;;;:10;8141:29;;;;;8168:1;8158:7;:11;8141:29;8137:176;;;8180:8;;;8137:176;8219:7;8209:2;:7;;:17;;;;;8245:61;8278:8;8288;8298:2;:7;;;8245:32;:61::i;:::-;8234:72;;7891:426;;;;;;:::o;5609:2278::-;5797:13;5956:41;;:::i;:::-;2140:23;;;;;;;;;;;2126:37;;:10;:37;;;2118:46;;;;;;;;5839:10;5828:21;;:7;:21;;;;5820:30;;;;;;;;5893:4;5864:33;;:25;5881:7;5864:16;:25::i;:::-;:33;;;5856:42;;;;;;;;5944:4;5912:36;;:28;5929:10;5912:16;:28::i;:::-;:36;;;5904:45;;;;;;;;6251:22;:20;:22::i;:::-;6011:9;:16;;;:34;;;:38;;6057:9;:16;;;:21;;6086:9;:16;;;:21;;6115:9;:16;;;:26;;6149:9;:16;;;:45;;6202:9;:16;;;:40;;6003:270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6299:9;:16;;;:40;;;6288:7;:51;;6280:60;;;;;;;;6420:31;6443:7;6420:22;:31::i;:::-;6348:9;:16;;;:24;;;:28;;6378:9;:16;;;:32;;6347:104;;;;;;;;;;;;;;6537:34;6560:10;6537:22;:34::i;:::-;6459:9;:19;;;:27;;;:31;;6492:9;:19;;;:35;;6458:113;;;;;;;;;;;;;;6602:7;6578:9;:21;;:31;;;;;6644:14;6615:9;:26;;:43;;;;;;;;;;;6719:4;6670:53;;:9;:16;;;:45;;;:53;;;6669:111;;;;6775:4;6739:40;;:9;:16;;;:32;;;:40;;;6669:111;6665:266;;;6802:46;6838:9;6802:35;:46::i;:::-;6790:58;;6665:266;;;6881:43;6914:9;6881:32;:43::i;:::-;6869:55;;6665:266;6971:4;6941:34;;:9;:26;;;:34;;;6937:923;;;7023:4;6993:34;;:26;7010:8;6993:16;:26::i;:::-;:34;;;6985:43;;;;;;;;7070:33;7085:7;7094:8;7070:14;:33::i;:::-;7036:9;:17;;;:27;;;:31;;:67;;;;;7141:45;7178:7;7141:9;:17;;;:27;;;:36;;:45;;;;:::i;:::-;7111:9;:17;;;:27;;:75;;;;7206:351;7255:7;7283:9;:16;;;:24;;;:29;;;7333:10;7364:9;:19;;;:27;;;:32;;;7417:9;:16;;;:34;;;:39;;;7477:8;7506:9;:17;;;:27;;;:32;;;7206:28;:351::i;:::-;7195:362;;6937:923;;;7589:264;7633:7;7661:9;:16;;;:24;;;:29;;;7711:10;7742:9;:19;;;:27;;;:32;;;7795:9;:16;;;:34;;;:39;;;7589:23;:264::i;:::-;7578:275;;6937:923;7873:8;7865:17;;;;;;;;5609:2278;;;;;;;;:::o;4896:301::-;4990:22;5020:21;5076:6;:12;;:22;5089:8;5076:22;;;;;;;;;;;;;;;:29;;:46;;;;;;;;;;;;5056:66;;5147:6;:12;;:22;5160:8;5147:22;;;;;;;;;;;;;;;:29;;:45;;;;;;;;;;;;5128:64;;4896:301;;;:::o;2261:575::-;2338:26;2372:13;2393;2414:18;2532:31;2468:6;:12;;:41;2481:6;:17;;:27;;;;;;;;;;;;2468:41;;;;;;;;;;;;;;;:46;;:58;;;2447:79;;2566:6;:13;;:30;;;;;;;;;;;;2532:64;;2615:6;:17;;:27;;;;;;;;;;;;2602:40;;2652:26;2648:184;;;2696:1;2688:9;;2713:1;2705:9;;2648:184;;;2743:6;:13;;:18;;:28;;:33;;;2735:41;;2792:6;:13;;:18;;:28;;:33;;;2784:41;;2648:184;2261:575;;;;;:::o;4697:195::-;4792:18;4833:6;:12;;:20;4846:6;4833:20;;;;;;;;;;;;;;;:25;;:44;;:54;4878:8;4833:54;;;;;;;;;;;;;;;;4820:67;;4697:195;;;;:::o;3834:269::-;3921:20;3943:21;3989:6;:12;;:22;4002:8;3989:22;;;;;;;;;;;;;;;:27;;:39;;;3974:54;;4053:6;:12;;:22;4066:8;4053:22;;;;;;;;;;;;;;;:29;;:45;;;;;;;;;;;;4034:64;;3834:269;;;:::o;8794:245::-;8908:13;2140:23;;;;;;;;;;;2126:37;;:10;:37;;;2118:46;;;;;;;;8970:7;8931:6;:12;;:18;8944:4;8931:18;;;;;;;;;;;;;;;:23;;:35;;;:46;;;;;;;;;;;9006:7;8983:6;:19;;;:30;;;;;;;;;;;9030:4;9019:15;;8794:245;;;;:::o;3232:598::-;3308:26;3342:13;3363;3384:18;3410:21;3439:32;3507:6;:12;;:40;3520:6;:17;;:26;;;;;;;;;;;;3507:40;;;;;;;;;;;;;;;:45;;:57;;;3486:78;;3578:6;:13;;:18;;:27;;:32;;;3570:40;;3624:6;:13;;:18;;:27;;:32;;;3616:40;;3675:6;:17;;:26;;;;;;;;;;;;3662:39;;3726:6;:13;;:29;;;;;;;;;;;;3707:48;;3788:6;:13;;:37;;;3761:64;;3232:598;;;;;;:::o;1872:138::-;2061:4;;;;;;;;;;;2047:18;;:10;:18;;;2039:27;;;;;;;;1985:20;1959:23;;:46;;;;;;;;;;;;;;;;;;1872:138;:::o;9513:510::-;9595:37;;:::i;:::-;9793:23;:21;:23::i;:::-;9650:10;:17;;;:35;;;:39;;9697:10;:17;;;:22;;9727:10;:17;;;:22;;9757:10;:17;;;:27;;9642:174;;;;;;;;;;;;;;;;;;;;;;;;9848:5;9822:10;:15;;;:23;;:31;;;;;;;;;;;9988:30;10012:5;9988:23;:30::i;:::-;9867:10;:15;;;:23;;;:27;;9902:10;:15;;;:28;;;:33;;;:37;;9947:10;:15;;;:32;;9859:159;;;;;;;;;;;;;;;;;;;9513:510;;;:::o;10027:1385::-;10140:38;;:::i;:::-;10233:1;10192:10;:15;;;:28;;;:33;;;:37;;;:42;10188:106;;;10284:3;10244:10;:15;;;:28;;;:33;;;:37;;:43;;;;;10188:106;10398:4;10362:40;;:10;:15;;;:32;;;:40;;;:98;;;;10433:10;:17;;;:27;;;10406:54;;:10;:15;;;:23;;;:54;;;10362:98;10358:1020;;;10501:10;:15;;;:23;;;:27;;;10470:10;:15;;;:23;;;:28;;:58;;;;;10579:10;:17;;;:35;;;:39;;;10536:10;:17;;;:35;;;:40;;:82;;;;;10667:3;10626:10;:15;;;:28;;;:33;;;:38;;:44;;;;;10358:1020;;;10722:47;10762:6;10722:10;:15;;;:28;;;:39;;:47;;;;:::i;:::-;10691:10;:15;;;:28;;:78;;;;10822:1;10781:10;:15;;;:28;;;:37;;;:42;10777:595;;;10866:10;:15;;;:23;;;:27;;;10835:10;:15;;;:23;;;:28;;:58;;;;;10946:10;:17;;;:35;;;:39;;;10903:10;:17;;;:35;;;:40;;:82;;;;;10777:595;;;11134:10;:17;;;:22;;;11108:10;:17;;;:22;;;11078:10;:15;;;:23;;;:27;;;11038:10;:15;;;:28;;;:37;;;:67;:92;11037:119;;;;;;;;11010:10;:24;;:146;;;;;11192:58;11225:10;:24;;;11192:10;:15;;;:23;;;:32;;:58;;;;:::i;:::-;11166:10;:15;;;:23;;:84;;;;11298:65;11338:10;:24;;;11298:10;:17;;;:35;;;:39;;:65;;;;:::i;:::-;11260:10;:17;;;:35;;:103;;;;10777:595;10358:1020;11397:10;11383:24;;10027:1385;;;:::o;11855:404::-;12097:22;12036:6;:12;;:41;12049:6;:17;;:27;;;;;;;;;;;;12036:41;;;;;;;;;;;;;;;:46;;:58;;:83;;;;12164:17;12125:6;:12;;:19;12138:5;12125:19;;;;;;;;;;;;;;;:24;;:36;;:56;;;;12232:22;12187:6;:12;;:19;12200:5;12187:19;;;;;;;;;;;;;;;:24;;:42;;:67;;;;11855:404;;;;:::o;13565:265::-;13708:13;13790:14;13731:6;:12;;:22;13744:8;13731:22;;;;;;;;;;;;;;;:27;;:46;;:56;13778:8;13731:56;;;;;;;;;;;;;;;:73;;;;13821:4;13810:15;;13565:265;;;;;:::o;12263:585::-;12385:38;;:::i;:::-;12449:1;12433:9;:13;;:17;;;;;12484:52;12514:9;:21;;;12484:9;:25;;;:29;;:52;;;;:::i;:::-;12456:9;:25;;:80;;;;12569:65;12603:9;:25;;;:30;;;12569:9;:16;;;:24;;;:33;;:65;;;;:::i;:::-;12542:9;:16;;;:24;;:92;;;;12682:9;:16;;;:34;;;:38;;;12640:9;:16;;;:34;;;:39;;:80;;;;;12756:63;12788:9;:25;;;:30;;;12756:9;:19;;;:27;;;:31;;:63;;;;:::i;:::-;12726:9;:19;;;:27;;:93;;;;12834:9;12825:18;;12263:585;;;:::o;12852:709::-;12971:38;;:::i;:::-;13085:9;:16;;;:21;;;13060:9;:16;;;:21;;;13036:9;:21;;;:45;13035:71;;;;;;;;13019:9;:13;;:87;;;;;13144:9;:21;;;13112:9;:25;;;:29;;:53;;;;;13199:49;13234:9;:13;;;13199:9;:25;;;:34;;:49;;;;:::i;:::-;13171:9;:25;;:77;;;;13291:53;13330:9;:13;;;13291:9;:16;;;:34;;;:38;;:53;;;;:::i;:::-;13254:9;:16;;;:34;;:90;;;;13377:56;13411:9;:21;;;13377:9;:16;;;:24;;;:33;;:56;;;;:::i;:::-;13350:9;:16;;;:24;;:83;;;;13469:63;13501:9;:25;;;:30;;;13469:9;:19;;;:27;;;:31;;:63;;;;:::i;:::-;13439:9;:19;;;:27;;:93;;;;13547:9;13538:18;;12852:709;;;:::o;3118:272:83:-;3239:24;;:::i;:::-;3292:9;:13;;;3281:7;:24;;3273:33;;;;;;;;3327:9;3312:24;;3378:7;3362:9;:13;;;:23;3342:12;:17;;:43;;;;;3118:272;;;;:::o;14345:656:70:-;14633:13;14697:19;14656:6;:12;;:21;14669:7;14656:21;;;;;;;;;;;;;;;:26;;:38;;:60;;;;14766:22;14722:6;:12;;:24;14735:10;14722:24;;;;;;;;;;;;;;;:29;;:41;;:66;;;;14854:35;14794:6;:12;;:40;14807:6;:17;;:26;;;;;;;;;;;;14794:40;;;;;;;;;;;;;;;:45;;:57;;:95;;;;14953:22;14895:6;:12;;:21;14908:7;14895:21;;;;;;;;;;;;;;;:26;;:45;;:55;14941:8;14895:55;;;;;;;;;;;;;;;:80;;;;14992:4;14981:15;;14345:656;;;;;;;;;:::o;13834:507::-;14059:13;14123:19;14082:6;:12;;:21;14095:7;14082:21;;;;;;;;;;;;;;;:26;;:38;;:60;;;;14192:22;14148:6;:12;;:24;14161:10;14148:24;;;;;;;;;;;;;;;:29;;:41;;:66;;;;14280:35;14220:6;:12;;:40;14233:6;:17;;:26;;;;;;;;;;;;14220:40;;;;;;;;;;;;;;;:45;;:57;;:95;;;;14332:4;14321:15;;13834:507;;;;;;;:::o;185:552:83:-;316:29;;:::i;:::-;425:15;519:14;370:9;355:24;;400:9;:14;;;:18;;;393:3;:25;;385:34;;;;;;;;449:9;:14;;;:18;;;443:3;:24;425:42;;507:6;497:7;:16;;;;;;;;473:12;:21;;:40;;;;;560:6;536:12;:21;;;:30;519:47;;601:1;576:12;:21;;;:26;572:161;;;637:9;:14;;;:18;;;612:12;:17;;;:22;;:43;;;;;572:161;;;696:30;700:12;:17;;;719:6;696:3;:30::i;:::-;676:12;:17;;:50;;;;572:161;185:552;;;;;;:::o;2829:285::-;2945:24;;:::i;:::-;3016:9;:13;;;3004:7;2988:9;:13;;;:23;2987:42;;2979:51;;;;;;;;3051:9;3036:24;;3102:7;3086:9;:13;;;:23;3066:12;:17;;:43;;;;;2829:285;;;;:::o;92:97:45:-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"@digix/lite-dgx-contract/contracts/DummyDGXStorage.sol\";\n\ncontract MockDgxStorage is DummyDGXStorage {\n    constructor() public DummyDGXStorage() {\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/mock/storage/MockDgxStorage.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/mock/storage/MockDgxStorage.sol",
    "exportedSymbols": {
      "MockDgxStorage": [
        11501
      ]
    },
    "id": 11502,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 11491,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:45"
      },
      {
        "absolutePath": "@digix/lite-dgx-contract/contracts/DummyDGXStorage.sol",
        "file": "@digix/lite-dgx-contract/contracts/DummyDGXStorage.sol",
        "id": 11492,
        "nodeType": "ImportDirective",
        "scope": 11502,
        "sourceUnit": 21193,
        "src": "26:64:45",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 11493,
              "name": "DummyDGXStorage",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 21192,
              "src": "119:15:45",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DummyDGXStorage_$21192",
                "typeString": "contract DummyDGXStorage"
              }
            },
            "id": 11494,
            "nodeType": "InheritanceSpecifier",
            "src": "119:15:45"
          }
        ],
        "contractDependencies": [
          21192
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 11501,
        "linearizedBaseContracts": [
          11501,
          21192
        ],
        "name": "MockDgxStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 11499,
              "nodeType": "Block",
              "src": "180:7:45",
              "statements": []
            },
            "documentation": null,
            "id": 11500,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 11497,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 11496,
                  "name": "DummyDGXStorage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 21192,
                  "src": "162:15:45",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_DummyDGXStorage_$21192_$",
                    "typeString": "type(contract DummyDGXStorage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "162:17:45"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11495,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "152:2:45"
            },
            "payable": false,
            "returnParameters": {
              "id": 11498,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "180:0:45"
            },
            "scope": 11501,
            "src": "141:46:45",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 11502,
        "src": "92:97:45"
      }
    ],
    "src": "0:190:45"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/mock/storage/MockDgxStorage.sol",
    "exportedSymbols": {
      "MockDgxStorage": [
        11501
      ]
    },
    "id": 11502,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 11491,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:45"
      },
      {
        "absolutePath": "@digix/lite-dgx-contract/contracts/DummyDGXStorage.sol",
        "file": "@digix/lite-dgx-contract/contracts/DummyDGXStorage.sol",
        "id": 11492,
        "nodeType": "ImportDirective",
        "scope": 11502,
        "sourceUnit": 21193,
        "src": "26:64:45",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 11493,
              "name": "DummyDGXStorage",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 21192,
              "src": "119:15:45",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DummyDGXStorage_$21192",
                "typeString": "contract DummyDGXStorage"
              }
            },
            "id": 11494,
            "nodeType": "InheritanceSpecifier",
            "src": "119:15:45"
          }
        ],
        "contractDependencies": [
          21192
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 11501,
        "linearizedBaseContracts": [
          11501,
          21192
        ],
        "name": "MockDgxStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 11499,
              "nodeType": "Block",
              "src": "180:7:45",
              "statements": []
            },
            "documentation": null,
            "id": 11500,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 11497,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 11496,
                  "name": "DummyDGXStorage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 21192,
                  "src": "162:15:45",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_DummyDGXStorage_$21192_$",
                    "typeString": "type(contract DummyDGXStorage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "162:17:45"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11495,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "152:2:45"
            },
            "payable": false,
            "returnParameters": {
              "id": 11498,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "180:0:45"
            },
            "scope": 11501,
            "src": "141:46:45",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 11502,
        "src": "92:97:45"
      }
    ],
    "src": "0:190:45"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {},
      "address": "0xd99a334b70d28c00a921147cd45de6431a31fbce",
      "transactionHash": "0x8084939c5cf99cc593a91eb52eb47f8b404662a2f0f40f8fd33100d8bdab855e"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-16T08:48:57.300Z"
}