{
  "contractName": "SaleClockAuction",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "lastGen0SalePrices",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "withdrawBalance",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "getAuction",
      "outputs": [
        {
          "name": "seller",
          "type": "address"
        },
        {
          "name": "startingPrice",
          "type": "uint256"
        },
        {
          "name": "endingPrice",
          "type": "uint256"
        },
        {
          "name": "duration",
          "type": "uint256"
        },
        {
          "name": "startedAt",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ownerCut",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isSaleClockAuction",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "cancelAuctionWhenPaused",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "gen0SaleCount",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "cancelAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "getCurrentPrice",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "nonFungibleContract",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_nftAddr",
          "type": "address"
        },
        {
          "name": "_cut",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "startingPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "endingPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "duration",
          "type": "uint256"
        }
      ],
      "name": "AuctionCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "totalPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "winner",
          "type": "address"
        }
      ],
      "name": "AuctionSuccessful",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "AuctionCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unpause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "name": "_startingPrice",
          "type": "uint256"
        },
        {
          "name": "_endingPrice",
          "type": "uint256"
        },
        {
          "name": "_duration",
          "type": "uint256"
        },
        {
          "name": "_seller",
          "type": "address"
        }
      ],
      "name": "createAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "bid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "averageGen0SalePrice",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526000805460a060020a60ff02191690556004805460ff1916600117905534801561002d57600080fd5b50604051604080610f7983398101604052805160209091015160008054600160a060020a031916331781558290829061271082111561006b57600080fd5b8160028190555082905080600160a060020a0316631051db346040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156100cc57600080fd5b505af11580156100e0573d6000803e3d6000fd5b505050506040513d60208110156100f657600080fd5b5051151561010357600080fd5b60018054600160a060020a03909216600160a060020a031990921691909117905550505050610e42806101376000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327ebe40a81146101155780633f4ba83a14610144578063454a2ab314610159578063484eccb4146101645780635c975abb1461018e5780635fd8c710146101b7578063715018a6146101cc57806378bd7935146101e157806383b5ff8b1461022e5780638456cb591461024357806385b8618814610258578063878eb3681461026d5780638a98a9cc146102855780638da5cb5b1461029a57806396b5a755146102cb578063c55d0f56146102e3578063dd1b7a0f146102fb578063eac9d94c14610310578063f2fde38b14610325575b34801561011257600080fd5b50005b34801561012157600080fd5b50610142600435602435604435606435600160a060020a0360843516610346565b005b34801561015057600080fd5b5061014261043f565b6101426004356104b5565b34801561017057600080fd5b5061017c60043561051f565b60408051918252519081900360200190f35b34801561019a57600080fd5b506101a3610533565b604080519115158252519081900360200190f35b3480156101c357600080fd5b50610142610543565b3480156101d857600080fd5b506101426105b0565b3480156101ed57600080fd5b506101f960043561061c565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561023a57600080fd5b5061017c6106b2565b34801561024f57600080fd5b506101426106b8565b34801561026457600080fd5b506101a3610733565b34801561027957600080fd5b5061014260043561073c565b34801561029157600080fd5b5061017c6107a5565b3480156102a657600080fd5b506102af6107ab565b60408051600160a060020a039092168252519081900360200190f35b3480156102d757600080fd5b506101426004356107ba565b3480156102ef57600080fd5b5061017c6004356107ff565b34801561030757600080fd5b506102af610831565b34801561031c57600080fd5b5061017c610840565b34801561033157600080fd5b50610142600160a060020a0360043516610874565b61034e610de8565b846fffffffffffffffffffffffffffffffff811061036b57600080fd5b846fffffffffffffffffffffffffffffffff811061038857600080fd5b8467ffffffffffffffff81111561039e57600080fd5b600154600160a060020a031633146103b557600080fd5b6103bf858a610897565b60a06040519081016040528086600160a060020a03168152602001896fffffffffffffffffffffffffffffffff168152602001886fffffffffffffffffffffffffffffffff1681526020018767ffffffffffffffff1681526020014267ffffffffffffffff1681525093506104348985610927565b505050505050505050565b600054600160a060020a0316331461045657600080fd5b60005460a060020a900460ff16151561046e57600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b600081815260036020526040812054600160a060020a0316906104d88334610a7b565b90506104e43384610b6c565b600154600160a060020a038381169116141561051a57600580548291600691066005811061050e57fe5b01556005805460010190555b505050565b6006816005811061052c57fe5b0154905081565b60005460a060020a900460ff1681565b600154600054600160a060020a03918216911633148061056b575033600160a060020a038216145b151561057657600080fd5b604051600160a060020a03821690303180156108fc02916000818181858888f193505050501580156105ac573d6000803e3d6000fd5b5050565b600054600160a060020a031633146105c757600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000818152600360205260408120819081908190819061063b81610bda565b151561064657600080fd5b80546001820154600290920154600160a060020a03909116986fffffffffffffffffffffffffffffffff8084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b600054600160a060020a031633146106cf57600080fd5b60005460a060020a900460ff16156106e657600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b60045460ff1681565b6000805460a060020a900460ff16151561075557600080fd5b600054600160a060020a0316331461076c57600080fd5b50600081815260036020526040902061078481610bda565b151561078f57600080fd5b80546105ac908390600160a060020a0316610bfb565b60055481565b600054600160a060020a031681565b6000818152600360205260408120906107d282610bda565b15156107dd57600080fd5b508054600160a060020a03163381146107f557600080fd5b61051a8382610bfb565b600081815260036020526040812061081681610bda565b151561082157600080fd5b61082a81610c45565b9392505050565b600154600160a060020a031681565b600080805b600581101561086a576006816005811061085b57fe5b01549190910190600101610845565b5060059004919050565b600054600160a060020a0316331461088b57600080fd5b61089481610cd5565b50565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015260448201859052915191909216916323b872dd91606480830192600092919082900301818387803b15801561090b57600080fd5b505af115801561091f573d6000803e3d6000fd5b505050505050565b603c816060015167ffffffffffffffff161015151561094557600080fd5b60008281526003602090815260409182902083518154600160a060020a0390911673ffffffffffffffffffffffffffffffffffffffff1990911617815581840151600182018054858701516fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000081029482166fffffffffffffffffffffffffffffffff19909316831790911693909317909155606080870151600290940180546080808a015167ffffffffffffffff90811668010000000000000000026fffffffffffffffff0000000000000000199190981667ffffffffffffffff1990931683171696909617909155865189815295860192909252848601929092529083015291517fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7929181900390910190a15050565b600082815260036020526040812081808080610a9685610bda565b1515610aa157600080fd5b610aaa85610c45565b935083871015610ab957600080fd5b8454600160a060020a03169250610acf88610d52565b6000841115610b2157610ae184610d9f565b6040519092508285039150600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610b1f573d6000803e3d6000fd5b505b6040805189815260208101869052338183015290517f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd29181900360600190a150919695505050505050565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb91604480830192600092919082900301818387803b15801561090b57600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610c0482610d52565b610c0e8183610b6c565b6040805183815290517f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df9181900360200190a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610c8b5750600282015468010000000000000000900467ffffffffffffffff1642035b6001830154600284015461082a916fffffffffffffffffffffffffffffffff80821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610dab565b600160a060020a0381161515610cea57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610dbf57869350610ddd565b878703925085858402811515610dd157fe5b05915081880190508093505b505050949350505050565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152905600a165627a7a72305820e8d9d6d8ad46dc6b4e64f0badf264d15f6491418116087bd28f66bd05f27a18a0029",
  "deployedBytecode": "0x6080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327ebe40a81146101155780633f4ba83a14610144578063454a2ab314610159578063484eccb4146101645780635c975abb1461018e5780635fd8c710146101b7578063715018a6146101cc57806378bd7935146101e157806383b5ff8b1461022e5780638456cb591461024357806385b8618814610258578063878eb3681461026d5780638a98a9cc146102855780638da5cb5b1461029a57806396b5a755146102cb578063c55d0f56146102e3578063dd1b7a0f146102fb578063eac9d94c14610310578063f2fde38b14610325575b34801561011257600080fd5b50005b34801561012157600080fd5b50610142600435602435604435606435600160a060020a0360843516610346565b005b34801561015057600080fd5b5061014261043f565b6101426004356104b5565b34801561017057600080fd5b5061017c60043561051f565b60408051918252519081900360200190f35b34801561019a57600080fd5b506101a3610533565b604080519115158252519081900360200190f35b3480156101c357600080fd5b50610142610543565b3480156101d857600080fd5b506101426105b0565b3480156101ed57600080fd5b506101f960043561061c565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561023a57600080fd5b5061017c6106b2565b34801561024f57600080fd5b506101426106b8565b34801561026457600080fd5b506101a3610733565b34801561027957600080fd5b5061014260043561073c565b34801561029157600080fd5b5061017c6107a5565b3480156102a657600080fd5b506102af6107ab565b60408051600160a060020a039092168252519081900360200190f35b3480156102d757600080fd5b506101426004356107ba565b3480156102ef57600080fd5b5061017c6004356107ff565b34801561030757600080fd5b506102af610831565b34801561031c57600080fd5b5061017c610840565b34801561033157600080fd5b50610142600160a060020a0360043516610874565b61034e610de8565b846fffffffffffffffffffffffffffffffff811061036b57600080fd5b846fffffffffffffffffffffffffffffffff811061038857600080fd5b8467ffffffffffffffff81111561039e57600080fd5b600154600160a060020a031633146103b557600080fd5b6103bf858a610897565b60a06040519081016040528086600160a060020a03168152602001896fffffffffffffffffffffffffffffffff168152602001886fffffffffffffffffffffffffffffffff1681526020018767ffffffffffffffff1681526020014267ffffffffffffffff1681525093506104348985610927565b505050505050505050565b600054600160a060020a0316331461045657600080fd5b60005460a060020a900460ff16151561046e57600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b600081815260036020526040812054600160a060020a0316906104d88334610a7b565b90506104e43384610b6c565b600154600160a060020a038381169116141561051a57600580548291600691066005811061050e57fe5b01556005805460010190555b505050565b6006816005811061052c57fe5b0154905081565b60005460a060020a900460ff1681565b600154600054600160a060020a03918216911633148061056b575033600160a060020a038216145b151561057657600080fd5b604051600160a060020a03821690303180156108fc02916000818181858888f193505050501580156105ac573d6000803e3d6000fd5b5050565b600054600160a060020a031633146105c757600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000818152600360205260408120819081908190819061063b81610bda565b151561064657600080fd5b80546001820154600290920154600160a060020a03909116986fffffffffffffffffffffffffffffffff8084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b600054600160a060020a031633146106cf57600080fd5b60005460a060020a900460ff16156106e657600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b60045460ff1681565b6000805460a060020a900460ff16151561075557600080fd5b600054600160a060020a0316331461076c57600080fd5b50600081815260036020526040902061078481610bda565b151561078f57600080fd5b80546105ac908390600160a060020a0316610bfb565b60055481565b600054600160a060020a031681565b6000818152600360205260408120906107d282610bda565b15156107dd57600080fd5b508054600160a060020a03163381146107f557600080fd5b61051a8382610bfb565b600081815260036020526040812061081681610bda565b151561082157600080fd5b61082a81610c45565b9392505050565b600154600160a060020a031681565b600080805b600581101561086a576006816005811061085b57fe5b01549190910190600101610845565b5060059004919050565b600054600160a060020a0316331461088b57600080fd5b61089481610cd5565b50565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015260448201859052915191909216916323b872dd91606480830192600092919082900301818387803b15801561090b57600080fd5b505af115801561091f573d6000803e3d6000fd5b505050505050565b603c816060015167ffffffffffffffff161015151561094557600080fd5b60008281526003602090815260409182902083518154600160a060020a0390911673ffffffffffffffffffffffffffffffffffffffff1990911617815581840151600182018054858701516fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000081029482166fffffffffffffffffffffffffffffffff19909316831790911693909317909155606080870151600290940180546080808a015167ffffffffffffffff90811668010000000000000000026fffffffffffffffff0000000000000000199190981667ffffffffffffffff1990931683171696909617909155865189815295860192909252848601929092529083015291517fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7929181900390910190a15050565b600082815260036020526040812081808080610a9685610bda565b1515610aa157600080fd5b610aaa85610c45565b935083871015610ab957600080fd5b8454600160a060020a03169250610acf88610d52565b6000841115610b2157610ae184610d9f565b6040519092508285039150600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610b1f573d6000803e3d6000fd5b505b6040805189815260208101869052338183015290517f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd29181900360600190a150919695505050505050565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb91604480830192600092919082900301818387803b15801561090b57600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610c0482610d52565b610c0e8183610b6c565b6040805183815290517f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df9181900360200190a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610c8b5750600282015468010000000000000000900467ffffffffffffffff1642035b6001830154600284015461082a916fffffffffffffffffffffffffffffffff80821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610dab565b600160a060020a0381161515610cea57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610dbf57869350610ddd565b878703925085858402811515610dd157fe5b05915081880190508093505b505050949350505050565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152905600a165627a7a72305820e8d9d6d8ad46dc6b4e64f0badf264d15f6491418116087bd28f66bd05f27a18a0029",
  "sourceMap": "389:2401:16:-;;;268:5:60;247:26;;-1:-1:-1;;;;;;247:26:60;;;575:37:16;;;-1:-1:-1;;575:37:16;247:26:60;575:37:16;;;776:110;5:2:-1;;;;30:1;27;20:12;5:2;776:110:16;;;;;;;;;;;;;;;;;;;1010:24:14;567:18:62;;-1:-1:-1;;;;;;567:18:62;575:10;567:18;;;776:110:16;;;;968:5:14;960:13;;;952:22;;;;;;995:4;984:8;:15;;;;1044:11;1010:46;;1074:17;-1:-1:-1;;;;;1074:34:14;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1074:36:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1074:36:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1074:36:14;1066:45;;;;;;;;1121:19;:39;;-1:-1:-1;;;;;1121:39:14;;;-1:-1:-1;;;;;;1121:39:14;;;;;;;;;-1:-1:-1;;;;389:2401:16;;;;;;",
  "deployedSourceMap": "389:2401:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;389:2401:16;;1281:666;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1281:666:16;;;;;;;;;-1:-1:-1;;;;;1281:666:16;;;;;;;838:92:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:92:60;;;;2075:494:16;;;;;;705:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;705:36:16;;;;;;;;;;;;;;;;;;;;;247:26:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:60;;;;;;;;;;;;;;;;;;;;;;1432:246:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1432:246:14;;;;1001:111:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:62;;;;4415:523:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4415:523:14;;;;;;;;;-1:-1:-1;;;;;4415:523:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:23:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:23:15;;;;666:90:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:90:60;;;;575:37:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;575:37:16;;;;4038:266:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4038:266:14;;;;;671:28:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;671:28:16;;;;238:20:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:62;;;;;;;;-1:-1:-1;;;;;238:20:62;;;;;;;;;;;;;;3494:291:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3494:291:14;;;;;5063:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5063:249:14;;;;;949:33:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;949:33:15;;;;2575:212:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2575:212:16;;;;1274:103:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:62;-1:-1:-1;;;;;1274:103:62;;;;;1281:666:16;1709:22;;:::i;:::-;1496:14;1898:39:15;1889:48;;1881:57;;;;;;1543:12:16;1898:39:15;1889:48;;1881:57;;;;;;1587:9:16;1778:20:15;1768:30;;;1760:39;;;;;;1642:19:16;;-1:-1:-1;;;;;1642:19:16;1620:10;:42;1612:51;;;;;;1673:26;1681:7;1690:8;1673:7;:26::i;:::-;1734:166;;;;;;;;;1755:7;-1:-1:-1;;;;;1734:166:16;;;;;1784:14;1734:166;;;;;;1821:12;1734:166;;;;;;1855:9;1734:166;;;;;;1886:3;1734:166;;;;;1709:191;;1910:30;1922:8;1932:7;1910:11;:30::i;:::-;1948:1:15;;1281:666:16;;;;;;;:::o;838:92:60:-;719:5:62;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;568:6:60;;-1:-1:-1;;;568:6:60;;;;560:15;;;;;;;;900:5;891:14;;-1:-1:-1;;891:14:60;;;916:9;;;;900:5;916:9;838:92::o;2075:494:16:-;2190:14;2207:26;;;:16;:26;;;;;:33;-1:-1:-1;;;;;2207:33:16;;2266:25;2224:8;2281:9;2266:4;:25::i;:::-;2250:41;;2301:31;2311:10;2323:8;2301:9;:31::i;:::-;2404:19;;-1:-1:-1;;;;;2386:38:16;;;2404:19;;2386:38;2382:181;;;2513:1;2497:13;;2518:5;;2478:18;;2497:17;2478:37;;;;;;;;:45;2537:13;:15;;;;;;2382:181;2075:494;;;:::o;705:36::-;;;;;;;;;;;;;-1:-1:-1;705:36:16;:::o;247:26:60:-;;;-1:-1:-1;;;247:26:60;;;;;:::o;1432:246:14:-;1507:19;;1478:18;1573:5;-1:-1:-1;;;;;1507:19:14;;;;1573:5;1559:10;:19;;:59;;-1:-1:-1;1594:10:14;-1:-1:-1;;;;;1594:24:14;;;1559:59;1538:90;;;;;;;;1638:33;;-1:-1:-1;;;;;1638:19:14;;;1658:4;:12;1638:33;;;;;;;;;1658:12;1638:19;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1638:33:14;1432:246;:::o;1001:111:62:-;719:5;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:62;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:62;;;1001:111::o;4415:523:14:-;4511:14;4681:26;;;:16;:26;;;;;4511:14;;;;;;;;4725:21;4681:26;4725:12;:21::i;:::-;4717:30;;;;;;;;4778:14;;;4806:21;;;4874:16;;;;;-1:-1:-1;;;;;4778:14:14;;;;4806:21;;;;;-1:-1:-1;4841:19:14;;;;;;;;-1:-1:-1;4874:16:14;;;;;-1:-1:-1;4904:17:14;;;;;;-1:-1:-1;4415:523:14;-1:-1:-1;;4415:523:14:o;1114:23:15:-;;;;:::o;666:90:60:-;719:5:62;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;416:6:60;;-1:-1:-1;;;416:6:60;;;;415:7;407:16;;;;;;720:6;:13;;-1:-1:-1;;720:13:60;-1:-1:-1;;;720:13:60;;;744:7;;;;720:6;744:7;666:90::o;575:37:16:-;;;;;;:::o;4038:266:14:-;4155:23;568:6:60;;-1:-1:-1;;;568:6:60;;;;560:15;;;;;;;;719:5:62;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;-1:-1:-1;4181:26:14;;;;:16;:26;;;;;4225:21;4181:26;4225:12;:21::i;:::-;4217:30;;;;;;;;4282:14;;4257:40;;4272:8;;-1:-1:-1;;;;;4282:14:14;4257;:40::i;671:28:16:-;;;;:::o;238:20:62:-;;;-1:-1:-1;;;;;238:20:62;;:::o;3494:291:14:-;3564:23;3590:26;;;:16;:26;;;;;;3634:21;3590:26;3634:12;:21::i;:::-;3626:30;;;;;;;;-1:-1:-1;3683:14:14;;-1:-1:-1;;;;;3683:14:14;3715:10;:20;;3707:29;;;;;;3746:32;3761:8;3771:6;3746:14;:32::i;5063:249::-;5151:7;5200:26;;;:16;:26;;;;;5244:21;5200:26;5244:12;:21::i;:::-;5236:30;;;;;;;;5283:22;5297:7;5283:13;:22::i;:::-;5276:29;5063:249;-1:-1:-1;;;5063:249:14:o;949:33:15:-;;;-1:-1:-1;;;;;949:33:15;;:::o;2575:212:16:-;2628:7;;;2672:85;2696:1;2692;:5;2672:85;;;2725:18;2744:1;2725:21;;;;;;;;;2718:28;;;;;2699:3;;2672:85;;;-1:-1:-1;2779:1:16;2773:7;;;2575:212;-1:-1:-1;2575:212:16:o;1274:103:62:-;719:5;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;2544:176:15:-;2657:19;;:56;;;;;;-1:-1:-1;;;;;2657:56:15;;;;;;;2698:4;2657:56;;;;;;;;;;;;:19;;;;;:32;;:56;;;;;:19;;:56;;;;;;;:19;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;2657:56:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2657:56:15;;;;2544:176;;:::o;3343:502::-;3573:9;3552:8;:17;;;:30;;;;3544:39;;;;;;;;3594:26;;;;:16;:26;;;;;;;;;:37;;;;-1:-1:-1;;;;;3594:37:15;;;-1:-1:-1;;3594:37:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3594:37:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3594:37:15;;;;-1:-1:-1;;3594:37:15;;;;;;;;;;;;;3655:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3343:502;;:::o;4196:2095::-;4282:7;4380:26;;;:16;:26;;;;;4282:7;;;;4687:21;4380:26;4687:12;:21::i;:::-;4679:30;;;;;;;;4819:22;4833:7;4819:13;:22::i;:::-;4803:38;-1:-1:-1;4859:19:15;;;;4851:28;;;;;;5000:14;;-1:-1:-1;;;;;5000:14:15;;-1:-1:-1;5159:24:15;5174:8;5159:14;:24::i;:::-;5265:1;5257:5;:9;5253:920;;;5488:18;5500:5;5488:11;:18::i;:::-;6131:31;;5464:42;;-1:-1:-1;5545:21:15;;;;-1:-1:-1;;;;;;6131:15:15;;;:31;;;;;5545:21;;6131:31;;;;5545:21;6131:15;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6131:31:15;5253:920;6215:46;;;;;;;;;;;;6250:10;6215:46;;;;;;;;;;;;;;;-1:-1:-1;6279:5:15;;4196:2095;-1:-1:-1;;;;;;4196:2095:15:o;2952:174::-;3070:19;;:49;;;;;;-1:-1:-1;;;;;3070:49:15;;;;;;;;;;;;;;;:19;;;;;:28;;:49;;;;;:19;;:49;;;;;;;:19;;:49;;;5:2:-1;;;;30:1;27;20:12;6612:125:15;6707:18;;;6683:4;6707:18;;;;;;:22;;6612:125::o;3900:188::-;3978:24;3993:8;3978:14;:24::i;:::-;4012:28;4022:7;4031:8;4012:9;:28::i;:::-;4055:26;;;;;;;;;;;;;;;;;3900:188;;:::o;7032:633::-;7398:18;;;;7128:7;;;;7398:18;;;;;7392:3;:24;7388:95;;;-1:-1:-1;7454:18:15;;;;;;;;;7448:3;:24;7388:95;7534:22;;;;7604:17;;;;7500:158;;7534:22;;;;;7570:20;;;;;;7604:17;;7635:13;7500:20;:158::i;1512:171:62:-;-1:-1:-1;;;;;1582:23:62;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:62;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:62;-1:-1:-1;;;;;1661:17:62;;;;;;;;;;1512:171::o;6409:101:15:-;6477:26;;;;:16;:26;;;;;6470:33;;-1:-1:-1;;6470:33:15;;;;;;;;;;;;;;-1:-1:-1;;6470:33:15;;;6409:101::o;9656:482::-;10115:8;;10126:5;10106:17;;:25;;9656:482::o;7913:1649::-;8117:7;;;;8466:27;;;8462:1094;;8642:12;8635:19;;;;8462:1094;8866:14;8843:12;8836:45;8810:71;;9216:9;9191:14;9165:16;:41;:61;;;;;;;;9137:89;;9472:18;9454:14;9447:43;9425:65;;9532:12;9517:28;;8462:1094;7913:1649;;;;;;;;;:::o;389:2401:16:-;;;;;;;;;-1:-1:-1;389:2401:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "/* solium-disable */\n/**\n *  @title Clock auction modified for sale of kitties\n *  @author dapperlabs (https://github.com/dapperlabs)\n *  This code was taken from https://github.com/dapperlabs at\n *  https://github.com/dapperlabs/cryptokitties-bounty and is NOT kleros code.\n */\npragma solidity ^0.4.18;\n\nimport \"./ClockAuction.sol\";\n\n/// @title Clock auction modified for sale of kitties\ncontract SaleClockAuction is ClockAuction {\n\n    // @dev Sanity check that allows us to ensure that we are pointing to the\n    //  right auction in our setSaleAuctionAddress() call.\n    bool public isSaleClockAuction = true;\n\n    // Tracks last 5 sale price of gen0 kitty sales\n    uint256 public gen0SaleCount;\n    uint256[5] public lastGen0SalePrices;\n\n    // Delegate constructor\n    function SaleClockAuction(address _nftAddr, uint256 _cut) public ClockAuction(_nftAddr, _cut) {\n        \n    }\n\n    /// @dev Creates and begins a new auction.\n    /// @param _tokenId - ID of token to auction, sender must be owner.\n    /// @param _startingPrice - Price of item (in wei) at beginning of auction.\n    /// @param _endingPrice - Price of item (in wei) at end of auction.\n    /// @param _duration - Length of auction (in seconds).\n    /// @param _seller - Seller, if not the message sender\n    function createAuction(\n        uint256 _tokenId,\n        uint256 _startingPrice,\n        uint256 _endingPrice,\n        uint256 _duration,\n        address _seller\n    )\n        public\n        canBeStoredWith128Bits(_startingPrice)\n        canBeStoredWith128Bits(_endingPrice)\n        canBeStoredWith64Bits(_duration)\n    {\n        require(msg.sender == address(nonFungibleContract));\n        _escrow(_seller, _tokenId);\n        Auction memory auction = Auction(\n            _seller,\n            uint128(_startingPrice),\n            uint128(_endingPrice),\n            uint64(_duration),\n            uint64(now)\n        );\n        _addAuction(_tokenId, auction);\n    }\n\n    /// @dev Updates lastSalePrice if seller is the nft contract\n    /// Otherwise, works the same as default bid method.\n    function bid(uint256 _tokenId)\n        public\n        payable\n    {\n        // _bid verifies token ID size\n        address seller = tokenIdToAuction[_tokenId].seller;\n        uint256 price = _bid(_tokenId, msg.value);\n        _transfer(msg.sender, _tokenId);\n\n        // If not a gen0 auction, exit\n        if (seller == address(nonFungibleContract)) {\n            // Track gen0 sale prices\n            lastGen0SalePrices[gen0SaleCount % 5] = price;\n            gen0SaleCount++;\n        }\n    }\n\n    function averageGen0SalePrice() public view returns (uint256) {\n        uint256 sum = 0;\n        for (uint256 i = 0; i < 5; i++) {\n            sum += lastGen0SalePrices[i];\n        }\n        return sum / 5;\n    }\n\n}\n",
  "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/SaleClockAuction.sol",
  "ast": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/SaleClockAuction.sol",
    "exportedSymbols": {
      "SaleClockAuction": [
        6255
      ]
    },
    "id": 6256,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6093,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "279:24:16"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuction.sol",
        "file": "./ClockAuction.sol",
        "id": 6094,
        "nodeType": "ImportDirective",
        "scope": 6256,
        "sourceUnit": 5705,
        "src": "305:28:16",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6095,
              "name": "ClockAuction",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5704,
              "src": "418:12:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ClockAuction_$5704",
                "typeString": "contract ClockAuction"
              }
            },
            "id": 6096,
            "nodeType": "InheritanceSpecifier",
            "src": "418:12:16"
          }
        ],
        "contractDependencies": [
          5704,
          6091,
          19752,
          19932
        ],
        "contractKind": "contract",
        "documentation": "@title Clock auction modified for sale of kitties",
        "fullyImplemented": true,
        "id": 6255,
        "linearizedBaseContracts": [
          6255,
          5704,
          6091,
          19752,
          19932
        ],
        "name": "SaleClockAuction",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 6099,
            "name": "isSaleClockAuction",
            "nodeType": "VariableDeclaration",
            "scope": 6255,
            "src": "575:37:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 6097,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "575:4:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "74727565",
              "id": 6098,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "bool",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "608:4:16",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              },
              "value": "true"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 6101,
            "name": "gen0SaleCount",
            "nodeType": "VariableDeclaration",
            "scope": 6255,
            "src": "671:28:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 6100,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "671:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 6105,
            "name": "lastGen0SalePrices",
            "nodeType": "VariableDeclaration",
            "scope": 6255,
            "src": "705:36:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$5_storage",
              "typeString": "uint256[5]"
            },
            "typeName": {
              "baseType": {
                "id": 6102,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "705:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 6104,
              "length": {
                "argumentTypes": null,
                "hexValue": "35",
                "id": 6103,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "713:1:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "5"
              },
              "nodeType": "ArrayTypeName",
              "src": "705:10:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr",
                "typeString": "uint256[5]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6116,
              "nodeType": "Block",
              "src": "870:16:16",
              "statements": []
            },
            "documentation": null,
            "id": 6117,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6112,
                    "name": "_nftAddr",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6107,
                    "src": "854:8:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 6113,
                    "name": "_cut",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6109,
                    "src": "864:4:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6114,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6111,
                  "name": "ClockAuction",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5704,
                  "src": "841:12:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_ClockAuction_$5704_$",
                    "typeString": "type(contract ClockAuction)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "841:28:16"
              }
            ],
            "name": "SaleClockAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6107,
                  "name": "_nftAddr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6117,
                  "src": "802:16:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6106,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "802:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6109,
                  "name": "_cut",
                  "nodeType": "VariableDeclaration",
                  "scope": 6117,
                  "src": "820:12:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6108,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "820:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "801:32:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 6115,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "870:0:16"
            },
            "scope": 6255,
            "src": "776:110:16",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6176,
              "nodeType": "Block",
              "src": "1602:345:16",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6140,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "1620:3:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 6141,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1620:10:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6143,
                              "name": "nonFungibleContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5720,
                              "src": "1642:19:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC721_$6435",
                                "typeString": "contract ERC721"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ERC721_$6435",
                                "typeString": "contract ERC721"
                              }
                            ],
                            "id": 6142,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1634:7:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 6144,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1634:28:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1620:42:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6139,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1612:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1612:51:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6147,
                  "nodeType": "ExpressionStatement",
                  "src": "1612:51:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6149,
                        "name": "_seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6127,
                        "src": "1681:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6150,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6119,
                        "src": "1690:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6148,
                      "name": "_escrow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5810,
                      "src": "1673:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 6151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1673:26:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6152,
                  "nodeType": "ExpressionStatement",
                  "src": "1673:26:16"
                },
                {
                  "assignments": [
                    6154
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6154,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 6177,
                      "src": "1709:22:16",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 6153,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "1709:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6170,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6156,
                        "name": "_seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6127,
                        "src": "1755:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6158,
                            "name": "_startingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6121,
                            "src": "1784:14:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6157,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1776:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": "uint128"
                        },
                        "id": 6159,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1776:23:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6161,
                            "name": "_endingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6123,
                            "src": "1821:12:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6160,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1813:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": "uint128"
                        },
                        "id": 6162,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1813:21:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6164,
                            "name": "_duration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6125,
                            "src": "1855:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6163,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1848:6:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 6165,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1848:17:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6167,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "1886:3:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6166,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1879:6:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 6168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1879:11:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 6155,
                      "name": "Auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5718,
                      "src": "1734:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Auction_$5718_storage_ptr_$",
                        "typeString": "type(struct ClockAuctionBase.Auction storage pointer)"
                      }
                    },
                    "id": 6169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1734:166:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_memory",
                      "typeString": "struct ClockAuctionBase.Auction memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1709:191:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6172,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6119,
                        "src": "1922:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6173,
                        "name": "auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6154,
                        "src": "1932:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                          "typeString": "struct ClockAuctionBase.Auction memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                          "typeString": "struct ClockAuctionBase.Auction memory"
                        }
                      ],
                      "id": 6171,
                      "name": "_addAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5864,
                      "src": "1910:11:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_Auction_$5718_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,struct ClockAuctionBase.Auction memory)"
                      }
                    },
                    "id": 6174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1910:30:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6175,
                  "nodeType": "ExpressionStatement",
                  "src": "1910:30:16"
                }
              ]
            },
            "documentation": "@dev Creates and begins a new auction.\n @param _tokenId - ID of token to auction, sender must be owner.\n @param _startingPrice - Price of item (in wei) at beginning of auction.\n @param _endingPrice - Price of item (in wei) at end of auction.\n @param _duration - Length of auction (in seconds).\n @param _seller - Seller, if not the message sender",
            "id": 6177,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6130,
                    "name": "_startingPrice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6121,
                    "src": "1496:14:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6131,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6129,
                  "name": "canBeStoredWith128Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5776,
                  "src": "1473:22:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1473:38:16"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6133,
                    "name": "_endingPrice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6123,
                    "src": "1543:12:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6134,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6132,
                  "name": "canBeStoredWith128Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5776,
                  "src": "1520:22:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1520:36:16"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6136,
                    "name": "_duration",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6125,
                    "src": "1587:9:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6137,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6135,
                  "name": "canBeStoredWith64Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5764,
                  "src": "1565:21:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1565:32:16"
              }
            ],
            "name": "createAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6119,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1313:16:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6118,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1313:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6121,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1339:22:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6120,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1339:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6123,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1371:20:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6122,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1371:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6125,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1401:17:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6124,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6127,
                  "name": "_seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1428:15:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6126,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1428:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1303:146:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 6138,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1602:0:16"
            },
            "scope": 6255,
            "src": "1281:666:16",
            "stateMutability": "nonpayable",
            "superFunction": 5556,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6221,
              "nodeType": "Block",
              "src": "2141:428:16",
              "statements": [
                {
                  "assignments": [
                    6183
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6183,
                      "name": "seller",
                      "nodeType": "VariableDeclaration",
                      "scope": 6222,
                      "src": "2190:14:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6182,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2190:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6188,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6184,
                        "name": "tokenIdToAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5726,
                        "src": "2207:16:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                          "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                        }
                      },
                      "id": 6186,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6185,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6179,
                        "src": "2224:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2207:26:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage",
                        "typeString": "struct ClockAuctionBase.Auction storage ref"
                      }
                    },
                    "id": 6187,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "seller",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 5709,
                    "src": "2207:33:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2190:50:16"
                },
                {
                  "assignments": [
                    6190
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6190,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 6222,
                      "src": "2250:13:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6189,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2250:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6196,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6192,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6179,
                        "src": "2271:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6193,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "2281:3:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 6194,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2281:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6191,
                      "name": "_bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5960,
                      "src": "2266:4:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) returns (uint256)"
                      }
                    },
                    "id": 6195,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2266:25:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2250:41:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6198,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "2311:3:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 6199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2311:10:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6200,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6179,
                        "src": "2323:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6197,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5825,
                      "src": "2301:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 6201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2301:31:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6202,
                  "nodeType": "ExpressionStatement",
                  "src": "2301:31:16"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 6207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6203,
                      "name": "seller",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6183,
                      "src": "2386:6:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6205,
                          "name": "nonFungibleContract",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5720,
                          "src": "2404:19:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ERC721_$6435",
                            "typeString": "contract ERC721"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_ERC721_$6435",
                            "typeString": "contract ERC721"
                          }
                        ],
                        "id": 6204,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2396:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 6206,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2396:28:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2386:38:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6220,
                  "nodeType": "IfStatement",
                  "src": "2382:181:16",
                  "trueBody": {
                    "id": 6219,
                    "nodeType": "Block",
                    "src": "2426:137:16",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6214,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6208,
                              "name": "lastGen0SalePrices",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6105,
                              "src": "2478:18:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$5_storage",
                                "typeString": "uint256[5] storage ref"
                              }
                            },
                            "id": 6212,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6211,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 6209,
                                "name": "gen0SaleCount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6101,
                                "src": "2497:13:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "%",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "35",
                                "id": 6210,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2513:1:16",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_5_by_1",
                                  "typeString": "int_const 5"
                                },
                                "value": "5"
                              },
                              "src": "2497:17:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2478:37:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6213,
                            "name": "price",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6190,
                            "src": "2518:5:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2478:45:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6215,
                        "nodeType": "ExpressionStatement",
                        "src": "2478:45:16"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6217,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "2537:15:16",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 6216,
                            "name": "gen0SaleCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6101,
                            "src": "2537:13:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6218,
                        "nodeType": "ExpressionStatement",
                        "src": "2537:15:16"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Updates lastSalePrice if seller is the nft contract\n Otherwise, works the same as default bid method.",
            "id": 6222,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "bid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6180,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6179,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6222,
                  "src": "2088:16:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6178,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2088:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2087:18:16"
            },
            "payable": true,
            "returnParameters": {
              "id": 6181,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2141:0:16"
            },
            "scope": 6255,
            "src": "2075:494:16",
            "stateMutability": "payable",
            "superFunction": 5576,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6253,
              "nodeType": "Block",
              "src": "2637:150:16",
              "statements": [
                {
                  "assignments": [
                    6228
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6228,
                      "name": "sum",
                      "nodeType": "VariableDeclaration",
                      "scope": 6254,
                      "src": "2647:11:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6227,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2647:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6230,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 6229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2661:1:16",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2647:15:16"
                },
                {
                  "body": {
                    "id": 6247,
                    "nodeType": "Block",
                    "src": "2704:53:16",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6245,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6241,
                            "name": "sum",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6228,
                            "src": "2718:3:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6242,
                              "name": "lastGen0SalePrices",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6105,
                              "src": "2725:18:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$5_storage",
                                "typeString": "uint256[5] storage ref"
                              }
                            },
                            "id": 6244,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6243,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6232,
                              "src": "2744:1:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2725:21:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2718:28:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6246,
                        "nodeType": "ExpressionStatement",
                        "src": "2718:28:16"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6235,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6232,
                      "src": "2692:1:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "35",
                      "id": 6236,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2696:1:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_5_by_1",
                        "typeString": "int_const 5"
                      },
                      "value": "5"
                    },
                    "src": "2692:5:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6248,
                  "initializationExpression": {
                    "assignments": [
                      6232
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6232,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 6254,
                        "src": "2677:9:16",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6231,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2677:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6234,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2689:1:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2677:13:16"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6239,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2699:3:16",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6238,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6232,
                        "src": "2699:1:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6240,
                    "nodeType": "ExpressionStatement",
                    "src": "2699:3:16"
                  },
                  "nodeType": "ForStatement",
                  "src": "2672:85:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6251,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6249,
                      "name": "sum",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6228,
                      "src": "2773:3:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "35",
                      "id": 6250,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2779:1:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_5_by_1",
                        "typeString": "int_const 5"
                      },
                      "value": "5"
                    },
                    "src": "2773:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6226,
                  "id": 6252,
                  "nodeType": "Return",
                  "src": "2766:14:16"
                }
              ]
            },
            "documentation": null,
            "id": 6254,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "averageGen0SalePrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6223,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2604:2:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 6226,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6225,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6254,
                  "src": "2628:7:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6224,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2628:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2627:9:16"
            },
            "scope": 6255,
            "src": "2575:212:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 6256,
        "src": "389:2401:16"
      }
    ],
    "src": "279:2512:16"
  },
  "legacyAST": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/SaleClockAuction.sol",
    "exportedSymbols": {
      "SaleClockAuction": [
        6255
      ]
    },
    "id": 6256,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6093,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "279:24:16"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuction.sol",
        "file": "./ClockAuction.sol",
        "id": 6094,
        "nodeType": "ImportDirective",
        "scope": 6256,
        "sourceUnit": 5705,
        "src": "305:28:16",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6095,
              "name": "ClockAuction",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5704,
              "src": "418:12:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ClockAuction_$5704",
                "typeString": "contract ClockAuction"
              }
            },
            "id": 6096,
            "nodeType": "InheritanceSpecifier",
            "src": "418:12:16"
          }
        ],
        "contractDependencies": [
          5704,
          6091,
          19752,
          19932
        ],
        "contractKind": "contract",
        "documentation": "@title Clock auction modified for sale of kitties",
        "fullyImplemented": true,
        "id": 6255,
        "linearizedBaseContracts": [
          6255,
          5704,
          6091,
          19752,
          19932
        ],
        "name": "SaleClockAuction",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 6099,
            "name": "isSaleClockAuction",
            "nodeType": "VariableDeclaration",
            "scope": 6255,
            "src": "575:37:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 6097,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "575:4:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "74727565",
              "id": 6098,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "bool",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "608:4:16",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              },
              "value": "true"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 6101,
            "name": "gen0SaleCount",
            "nodeType": "VariableDeclaration",
            "scope": 6255,
            "src": "671:28:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 6100,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "671:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 6105,
            "name": "lastGen0SalePrices",
            "nodeType": "VariableDeclaration",
            "scope": 6255,
            "src": "705:36:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$5_storage",
              "typeString": "uint256[5]"
            },
            "typeName": {
              "baseType": {
                "id": 6102,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "705:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 6104,
              "length": {
                "argumentTypes": null,
                "hexValue": "35",
                "id": 6103,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "713:1:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "5"
              },
              "nodeType": "ArrayTypeName",
              "src": "705:10:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr",
                "typeString": "uint256[5]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6116,
              "nodeType": "Block",
              "src": "870:16:16",
              "statements": []
            },
            "documentation": null,
            "id": 6117,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6112,
                    "name": "_nftAddr",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6107,
                    "src": "854:8:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 6113,
                    "name": "_cut",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6109,
                    "src": "864:4:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6114,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6111,
                  "name": "ClockAuction",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5704,
                  "src": "841:12:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_ClockAuction_$5704_$",
                    "typeString": "type(contract ClockAuction)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "841:28:16"
              }
            ],
            "name": "SaleClockAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6107,
                  "name": "_nftAddr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6117,
                  "src": "802:16:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6106,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "802:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6109,
                  "name": "_cut",
                  "nodeType": "VariableDeclaration",
                  "scope": 6117,
                  "src": "820:12:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6108,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "820:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "801:32:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 6115,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "870:0:16"
            },
            "scope": 6255,
            "src": "776:110:16",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6176,
              "nodeType": "Block",
              "src": "1602:345:16",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6140,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "1620:3:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 6141,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1620:10:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6143,
                              "name": "nonFungibleContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5720,
                              "src": "1642:19:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC721_$6435",
                                "typeString": "contract ERC721"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ERC721_$6435",
                                "typeString": "contract ERC721"
                              }
                            ],
                            "id": 6142,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1634:7:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 6144,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1634:28:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1620:42:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6139,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1612:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1612:51:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6147,
                  "nodeType": "ExpressionStatement",
                  "src": "1612:51:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6149,
                        "name": "_seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6127,
                        "src": "1681:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6150,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6119,
                        "src": "1690:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6148,
                      "name": "_escrow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5810,
                      "src": "1673:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 6151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1673:26:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6152,
                  "nodeType": "ExpressionStatement",
                  "src": "1673:26:16"
                },
                {
                  "assignments": [
                    6154
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6154,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 6177,
                      "src": "1709:22:16",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 6153,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "1709:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6170,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6156,
                        "name": "_seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6127,
                        "src": "1755:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6158,
                            "name": "_startingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6121,
                            "src": "1784:14:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6157,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1776:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": "uint128"
                        },
                        "id": 6159,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1776:23:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6161,
                            "name": "_endingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6123,
                            "src": "1821:12:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6160,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1813:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": "uint128"
                        },
                        "id": 6162,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1813:21:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6164,
                            "name": "_duration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6125,
                            "src": "1855:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6163,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1848:6:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 6165,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1848:17:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6167,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "1886:3:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6166,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1879:6:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 6168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1879:11:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 6155,
                      "name": "Auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5718,
                      "src": "1734:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Auction_$5718_storage_ptr_$",
                        "typeString": "type(struct ClockAuctionBase.Auction storage pointer)"
                      }
                    },
                    "id": 6169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1734:166:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_memory",
                      "typeString": "struct ClockAuctionBase.Auction memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1709:191:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6172,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6119,
                        "src": "1922:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6173,
                        "name": "auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6154,
                        "src": "1932:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                          "typeString": "struct ClockAuctionBase.Auction memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                          "typeString": "struct ClockAuctionBase.Auction memory"
                        }
                      ],
                      "id": 6171,
                      "name": "_addAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5864,
                      "src": "1910:11:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_Auction_$5718_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,struct ClockAuctionBase.Auction memory)"
                      }
                    },
                    "id": 6174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1910:30:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6175,
                  "nodeType": "ExpressionStatement",
                  "src": "1910:30:16"
                }
              ]
            },
            "documentation": "@dev Creates and begins a new auction.\n @param _tokenId - ID of token to auction, sender must be owner.\n @param _startingPrice - Price of item (in wei) at beginning of auction.\n @param _endingPrice - Price of item (in wei) at end of auction.\n @param _duration - Length of auction (in seconds).\n @param _seller - Seller, if not the message sender",
            "id": 6177,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6130,
                    "name": "_startingPrice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6121,
                    "src": "1496:14:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6131,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6129,
                  "name": "canBeStoredWith128Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5776,
                  "src": "1473:22:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1473:38:16"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6133,
                    "name": "_endingPrice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6123,
                    "src": "1543:12:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6134,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6132,
                  "name": "canBeStoredWith128Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5776,
                  "src": "1520:22:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1520:36:16"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6136,
                    "name": "_duration",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6125,
                    "src": "1587:9:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6137,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6135,
                  "name": "canBeStoredWith64Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5764,
                  "src": "1565:21:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1565:32:16"
              }
            ],
            "name": "createAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6119,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1313:16:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6118,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1313:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6121,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1339:22:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6120,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1339:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6123,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1371:20:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6122,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1371:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6125,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1401:17:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6124,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6127,
                  "name": "_seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 6177,
                  "src": "1428:15:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6126,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1428:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1303:146:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 6138,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1602:0:16"
            },
            "scope": 6255,
            "src": "1281:666:16",
            "stateMutability": "nonpayable",
            "superFunction": 5556,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6221,
              "nodeType": "Block",
              "src": "2141:428:16",
              "statements": [
                {
                  "assignments": [
                    6183
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6183,
                      "name": "seller",
                      "nodeType": "VariableDeclaration",
                      "scope": 6222,
                      "src": "2190:14:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6182,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2190:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6188,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6184,
                        "name": "tokenIdToAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5726,
                        "src": "2207:16:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                          "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                        }
                      },
                      "id": 6186,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6185,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6179,
                        "src": "2224:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2207:26:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage",
                        "typeString": "struct ClockAuctionBase.Auction storage ref"
                      }
                    },
                    "id": 6187,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "seller",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 5709,
                    "src": "2207:33:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2190:50:16"
                },
                {
                  "assignments": [
                    6190
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6190,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 6222,
                      "src": "2250:13:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6189,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2250:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6196,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6192,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6179,
                        "src": "2271:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6193,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "2281:3:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 6194,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2281:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6191,
                      "name": "_bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5960,
                      "src": "2266:4:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) returns (uint256)"
                      }
                    },
                    "id": 6195,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2266:25:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2250:41:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6198,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "2311:3:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 6199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2311:10:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6200,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6179,
                        "src": "2323:8:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6197,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5825,
                      "src": "2301:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 6201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2301:31:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6202,
                  "nodeType": "ExpressionStatement",
                  "src": "2301:31:16"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 6207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6203,
                      "name": "seller",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6183,
                      "src": "2386:6:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6205,
                          "name": "nonFungibleContract",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5720,
                          "src": "2404:19:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ERC721_$6435",
                            "typeString": "contract ERC721"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_ERC721_$6435",
                            "typeString": "contract ERC721"
                          }
                        ],
                        "id": 6204,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2396:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 6206,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2396:28:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2386:38:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6220,
                  "nodeType": "IfStatement",
                  "src": "2382:181:16",
                  "trueBody": {
                    "id": 6219,
                    "nodeType": "Block",
                    "src": "2426:137:16",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6214,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6208,
                              "name": "lastGen0SalePrices",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6105,
                              "src": "2478:18:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$5_storage",
                                "typeString": "uint256[5] storage ref"
                              }
                            },
                            "id": 6212,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6211,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 6209,
                                "name": "gen0SaleCount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6101,
                                "src": "2497:13:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "%",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "35",
                                "id": 6210,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2513:1:16",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_5_by_1",
                                  "typeString": "int_const 5"
                                },
                                "value": "5"
                              },
                              "src": "2497:17:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2478:37:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6213,
                            "name": "price",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6190,
                            "src": "2518:5:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2478:45:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6215,
                        "nodeType": "ExpressionStatement",
                        "src": "2478:45:16"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6217,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "2537:15:16",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 6216,
                            "name": "gen0SaleCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6101,
                            "src": "2537:13:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6218,
                        "nodeType": "ExpressionStatement",
                        "src": "2537:15:16"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Updates lastSalePrice if seller is the nft contract\n Otherwise, works the same as default bid method.",
            "id": 6222,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "bid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6180,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6179,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6222,
                  "src": "2088:16:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6178,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2088:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2087:18:16"
            },
            "payable": true,
            "returnParameters": {
              "id": 6181,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2141:0:16"
            },
            "scope": 6255,
            "src": "2075:494:16",
            "stateMutability": "payable",
            "superFunction": 5576,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6253,
              "nodeType": "Block",
              "src": "2637:150:16",
              "statements": [
                {
                  "assignments": [
                    6228
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6228,
                      "name": "sum",
                      "nodeType": "VariableDeclaration",
                      "scope": 6254,
                      "src": "2647:11:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6227,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2647:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6230,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 6229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2661:1:16",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2647:15:16"
                },
                {
                  "body": {
                    "id": 6247,
                    "nodeType": "Block",
                    "src": "2704:53:16",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6245,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6241,
                            "name": "sum",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6228,
                            "src": "2718:3:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6242,
                              "name": "lastGen0SalePrices",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6105,
                              "src": "2725:18:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$5_storage",
                                "typeString": "uint256[5] storage ref"
                              }
                            },
                            "id": 6244,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6243,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6232,
                              "src": "2744:1:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2725:21:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2718:28:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6246,
                        "nodeType": "ExpressionStatement",
                        "src": "2718:28:16"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6235,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6232,
                      "src": "2692:1:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "35",
                      "id": 6236,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2696:1:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_5_by_1",
                        "typeString": "int_const 5"
                      },
                      "value": "5"
                    },
                    "src": "2692:5:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6248,
                  "initializationExpression": {
                    "assignments": [
                      6232
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6232,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 6254,
                        "src": "2677:9:16",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6231,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2677:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6234,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2689:1:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2677:13:16"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6239,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2699:3:16",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6238,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6232,
                        "src": "2699:1:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6240,
                    "nodeType": "ExpressionStatement",
                    "src": "2699:3:16"
                  },
                  "nodeType": "ForStatement",
                  "src": "2672:85:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6251,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6249,
                      "name": "sum",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6228,
                      "src": "2773:3:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "35",
                      "id": 6250,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2779:1:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_5_by_1",
                        "typeString": "int_const 5"
                      },
                      "value": "5"
                    },
                    "src": "2773:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6226,
                  "id": 6252,
                  "nodeType": "Return",
                  "src": "2766:14:16"
                }
              ]
            },
            "documentation": null,
            "id": 6254,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "averageGen0SalePrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6223,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2604:2:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 6226,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6225,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6254,
                  "src": "2628:7:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6224,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2628:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2627:9:16"
            },
            "scope": 6255,
            "src": "2575:212:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 6256,
        "src": "389:2401:16"
      }
    ],
    "src": "279:2512:16"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-02T14:04:10.980Z"
}