{
  "contractName": "KittyBase",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "cfoAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ceoAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newCEO",
          "type": "address"
        }
      ],
      "name": "setCEO",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newCOO",
          "type": "address"
        }
      ],
      "name": "setCOO",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "sireAllowedToAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "kittyIndexToApproved",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newCFO",
          "type": "address"
        }
      ],
      "name": "setCFO",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "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": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "cooldowns",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "kittyIndexToOwner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "cooAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "kittyId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "matronId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "sireId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "genes",
          "type": "uint256"
        }
      ],
      "name": "Birth",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "newContract",
          "type": "address"
        }
      ],
      "name": "ContractUpgrade",
      "type": "event"
    }
  ],
  "bytecode": "0x6002805460a060020a60ff0219169055610240604052603c6080908152607860a05261012c60c05261025860e05261070861010052610e1061012052611c2061014052613840610160526170806101805261e1006101a052620151806101c0526202a3006101e052620546006102005262093a806102205261008590600390600e610098565b5034801561009257600080fd5b50610158565b6002830191839082156101245791602002820160005b838211156100f257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026100ae565b80156101225782816101000a81549063ffffffff02191690556004016020816003010492830192600103026100f2565b505b50610130929150610134565b5090565b61015591905b8082111561013057805463ffffffff1916815560010161013a565b90565b6105d4806101676000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630519ce7981146100d45780630a0f81681461010557806327d7874c1461011a5780632ba73c151461013d5780633f4ba83a1461015e57806346116e6f14610173578063481af3d31461018b5780634e0a3379146101a35780635c975abb146101c45780635fd8c710146101ed5780638456cb59146102025780639d6fac6f14610217578063a45f4bfc14610248578063b047fb5014610260575b600080fd5b3480156100e057600080fd5b506100e9610275565b60408051600160a060020a039092168252519081900360200190f35b34801561011157600080fd5b506100e9610284565b34801561012657600080fd5b5061013b600160a060020a0360043516610293565b005b34801561014957600080fd5b5061013b600160a060020a03600435166102ee565b34801561016a57600080fd5b5061013b610349565b34801561017f57600080fd5b506100e96004356103a9565b34801561019757600080fd5b506100e96004356103c4565b3480156101af57600080fd5b5061013b600160a060020a03600435166103df565b3480156101d057600080fd5b506101d961043a565b604080519115158252519081900360200190f35b3480156101f957600080fd5b5061013b61045b565b34801561020e57600080fd5b5061013b6104af565b34801561022357600080fd5b5061022f600435610551565b6040805163ffffffff9092168252519081900360200190f35b34801561025457600080fd5b506100e960043561057e565b34801561026c57600080fd5b506100e9610599565b600154600160a060020a031681565b600054600160a060020a031681565b600054600160a060020a031633146102aa57600080fd5b600160a060020a03811615156102bf57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461030557600080fd5b600160a060020a038116151561031a57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461036057600080fd5b60025474010000000000000000000000000000000000000000900460ff16151561038957600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600960205260009081526040902054600160a060020a031681565b600860205260009081526040902054600160a060020a031681565b600054600160a060020a031633146103f657600080fd5b600160a060020a038116151561040b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025474010000000000000000000000000000000000000000900460ff1681565b600154600160a060020a0316331461047257600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156104ac573d6000803e3d6000fd5b50565b600254600160a060020a03163314806104d25750600054600160a060020a031633145b806104e75750600154600160a060020a031633145b15156104f257600080fd5b60025474010000000000000000000000000000000000000000900460ff161561051a57600080fd5b6002805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600381600e811061055e57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b600254600160a060020a0316815600a165627a7a7230582050acdb0d7d3fb079ad0eb5a4a0f7cd787563f33b4cb048a0d6137a0b2148c1020029",
  "deployedBytecode": "0x6080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630519ce7981146100d45780630a0f81681461010557806327d7874c1461011a5780632ba73c151461013d5780633f4ba83a1461015e57806346116e6f14610173578063481af3d31461018b5780634e0a3379146101a35780635c975abb146101c45780635fd8c710146101ed5780638456cb59146102025780639d6fac6f14610217578063a45f4bfc14610248578063b047fb5014610260575b600080fd5b3480156100e057600080fd5b506100e9610275565b60408051600160a060020a039092168252519081900360200190f35b34801561011157600080fd5b506100e9610284565b34801561012657600080fd5b5061013b600160a060020a0360043516610293565b005b34801561014957600080fd5b5061013b600160a060020a03600435166102ee565b34801561016a57600080fd5b5061013b610349565b34801561017f57600080fd5b506100e96004356103a9565b34801561019757600080fd5b506100e96004356103c4565b3480156101af57600080fd5b5061013b600160a060020a03600435166103df565b3480156101d057600080fd5b506101d961043a565b604080519115158252519081900360200190f35b3480156101f957600080fd5b5061013b61045b565b34801561020e57600080fd5b5061013b6104af565b34801561022357600080fd5b5061022f600435610551565b6040805163ffffffff9092168252519081900360200190f35b34801561025457600080fd5b506100e960043561057e565b34801561026c57600080fd5b506100e9610599565b600154600160a060020a031681565b600054600160a060020a031681565b600054600160a060020a031633146102aa57600080fd5b600160a060020a03811615156102bf57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461030557600080fd5b600160a060020a038116151561031a57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461036057600080fd5b60025474010000000000000000000000000000000000000000900460ff16151561038957600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600960205260009081526040902054600160a060020a031681565b600860205260009081526040902054600160a060020a031681565b600054600160a060020a031633146103f657600080fd5b600160a060020a038116151561040b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025474010000000000000000000000000000000000000000900460ff1681565b600154600160a060020a0316331461047257600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156104ac573d6000803e3d6000fd5b50565b600254600160a060020a03163314806104d25750600054600160a060020a031633145b806104e75750600154600160a060020a031633145b15156104f257600080fd5b60025474010000000000000000000000000000000000000000900460ff161561051a57600080fd5b6002805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600381600e811061055e57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b600254600160a060020a0316815600a165627a7a7230582050acdb0d7d3fb079ad0eb5a4a0f7cd787563f33b4cb048a0d6137a0b2148c1020029",
  "sourceMap": "2135:26:21:-;;;-1:-1:-1;;;;;;2135:26:21;;;4302:395:23;634:8678;4302:395;4349:9;634:8678;4302:395;;;4376:9;4302:395;;4403:9;4302:395;;4430:10;4302:395;;4458:10;2135:26:21;4302:395:23;4486:7;4302:395;;4511:7;4302:395;;4536:7;4302:395;;4561:7;4302:395;;4586:8;4302:395;;4612:6;4302:395;;4636:6;4302:395;;4660:6;4302:395;;4684:6;4302:395;;;;;;;;:::i;:::-;;634:8678;8:9:-1;5:2;;;30:1;27;20:12;5:2;634:8678:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;634:8678:23;;;-1:-1:-1;634:8678:23;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;634:8678:23;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "634:8678:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1972:25:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1972:25:21;;;;;;;;-1:-1:-1;;;;;1972:25:21;;;;;;;;;;;;;;1941;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1941:25:21;;;;2924:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2924:126:21;-1:-1:-1;;;;;2924:126:21;;;;;;;3466;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3466:126:21;-1:-1:-1;;;;;3466:126:21;;;;;4466;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4466:126:21;;;;6138:56:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6138:56:23;;;;;5820;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5820:56:23;;;;;3195:126:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3195:126:21;-1:-1:-1;;;;;3195:126:21;;;;;2135:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2135:26:21;;;;;;;;;;;;;;;;;;;;;;3598:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3598:94:21;;;;4202:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4202:79:21;;;;4302:395:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4302:395:23;;;;;;;;;;;;;;;;;;;;;;;;5320:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5320:53:23;;;;;2003:25:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2003:25:21;;;;1972;;;-1:-1:-1;;;;;1972:25:21;;:::o;1941:::-;;;-1:-1:-1;;;;;1941:25:21;;:::o;2924:126::-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;2990:21:21;;;;2982:30;;;;;;3023:10;:20;;-1:-1:-1;;3023:20:21;-1:-1:-1;;;;;3023:20:21;;;;;;;;;;2924:126::o;3466:::-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;3532:21:21;;;;3524:30;;;;;;3565:10;:20;;-1:-1:-1;;3565:20:21;-1:-1:-1;;;;;3565:20:21;;;;;;;;;;3466:126::o;4466:::-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;4024:6;;;;;;;4016:15;;;;;;;;4571:6;:14;;-1:-1:-1;;4571:14:21;;;4466:126::o;6138:56:23:-;;;;;;;;;;;;-1:-1:-1;;;;;6138:56:23;;:::o;5820:::-;;;;;;;;;;;;-1:-1:-1;;;;;5820:56:23;;:::o;3195:126:21:-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;3261:21:21;;;;3253:30;;;;;;3294:10;:20;;-1:-1:-1;;3294:20:21;-1:-1:-1;;;;;3294:20:21;;;;;;;;;;3195:126::o;2135:26::-;;;;;;;;;:::o;3598:94::-;2417:10;;-1:-1:-1;;;;;2417:10:21;2403;:24;2395:33;;;;;;3652:10;;:33;;-1:-1:-1;;;;;3652:10:21;;;;3672:4;:12;3652:33;;;;;:10;:33;:10;:33;3672:12;3652:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3652:33:21;3598:94::o;4202:79::-;2661:10;;-1:-1:-1;;;;;2661:10:21;2647;:24;;:64;;-1:-1:-1;2701:10:21;;-1:-1:-1;;;;;2701:10:21;2687;:24;2647:64;:104;;;-1:-1:-1;2741:10:21;;-1:-1:-1;;;;;2741:10:21;2727;:24;2647:104;2626:135;;;;;;;;3883:6;;;;;;;3882:7;3874:16;;;;;;4261:6;:13;;-1:-1:-1;;4261:13:21;;;;;4202:79::o;4302:395:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5320:53::-;;;;;;;;;;;;-1:-1:-1;;;;;5320:53:23;;:::o;2003:25:21:-;;;-1:-1:-1;;;;;2003:25:21;;:::o",
  "source": "/* solium-disable */\n/**\n *  @title Base contract for CryptoKitties. Holds all common structs, events and base variables.\n *  @author Axiom Zen (https://www.axiomzen.co)\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 \"./KittyAccessControl.sol\";\n\n\n/// @title Base contract for CryptoKitties. Holds all common structs, events and base variables.\n/// @author Axiom Zen (https://www.axiomzen.co)\n/// @dev See the KittyCore contract documentation to understand how the various contract facets are arranged.\ncontract KittyBase is KittyAccessControl {\n    /*** EVENTS ***/\n\n    /// @dev The Birth event is fired whenever a new kitten comes into existence. This obviously\n    ///  includes any time a cat is created through the giveBirth method, but it is also called\n    ///  when a new gen0 cat is created.\n    event Birth(address indexed owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes);\n\n    /// @dev Transfer event as defined in current draft of ERC721. Emitted every time a kitten\n    ///  ownership is assigned, including births.\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n    /*** DATA TYPES ***/\n\n    /// @dev The main Kitty struct. Every cat in CryptoKitties is represented by a copy\n    ///  of this structure, so great care was taken to ensure that it fits neatly into\n    ///  exactly two 256-bit words. Note that the order of the members in this structure\n    ///  is important because of the byte-packing rules used by Ethereum.\n    ///  Ref: http://solidity.readthedocs.io/en/develop/miscellaneous.html\n    struct Kitty {\n        // The Kitty's genetic code is packed into these 256-bits, the format is\n        // sooper-sekret! A cat's genes never change.\n        uint256 genes;\n\n        // The timestamp from the block when this cat came into existence.\n        uint64 birthTime;\n\n        // The minimum timestamp after which this cat can engage in breeding\n        // activities again. This same timestamp is used for the pregnancy\n        // timer (for matrons) as well as the siring cooldown.\n        uint64 cooldownEndTime;\n\n        // The ID of the parents of this kitty, set to 0 for gen0 cats.\n        // Note that using 32-bit unsigned integers limits us to a \"mere\"\n        // 4 billion cats. This number might seem small until you realize\n        // that Ethereum currently has a limit of about 500 million\n        // transactions per year! So, this definitely won't be a problem\n        // for several years (even as Ethereum learns to scale).\n        uint32 matronId;\n        uint32 sireId;\n\n        // Set to the ID of the sire cat for matrons that are pregnant,\n        // zero otherwise. A non-zero value here is how we know a cat\n        // is pregnant. Used to retrieve the genetic material for the new\n        // kitten when the birth transpires.\n        uint32 siringWithId;\n\n        // Set to the index in the cooldown array (see below) that represents\n        // the current cooldown duration for this Kitty. This starts at zero\n        // for gen0 cats, and is initialized to floor(generation/2) for others.\n        // Incremented by one for each successful breeding action, regardless\n        // of whether this cat is acting as matron or sire.\n        uint16 cooldownIndex;\n\n        // The \"generation number\" of this cat. Cats minted by the CK contract\n        // for sale are called \"gen0\" and have a generation number of 0. The\n        // generation number of all other cats is the larger of the two generation\n        // numbers of their parents, plus one.\n        // (i.e. max(matron.generation, sire.generation) + 1)\n        uint16 generation;\n    }\n\n    /*** CONSTANTS ***/\n\n    /// @dev A lookup table indicating the cooldown duration after any successful\n    ///  breeding action, called \"pregnancy time\" for matrons and \"siring cooldown\"\n    ///  for sires. Designed such that the cooldown roughly doubles each time a cat\n    ///  is bred, encouraging owners not to just keep breeding the same cat over\n    ///  and over again. Caps out at one week (a cat can breed an unbounded number\n    ///  of times, and the maximum cooldown is always seven days).\n    uint32[14] public cooldowns = [\n        uint32(1 minutes),\n        uint32(2 minutes),\n        uint32(5 minutes),\n        uint32(10 minutes),\n        uint32(30 minutes),\n        uint32(1 hours),\n        uint32(2 hours),\n        uint32(4 hours),\n        uint32(8 hours),\n        uint32(16 hours),\n        uint32(1 days),\n        uint32(2 days),\n        uint32(4 days),\n        uint32(7 days)\n    ];\n\n    /*** STORAGE ***/\n\n    /// @dev An array containing the Kitty struct for all Kitties in existence. The ID\n    ///  of each cat is actually an index into this array. Note that ID 0 is a negacat,\n    ///  the unKitty, the mythical beast that is the parent of all gen0 cats. A bizarre\n    ///  creature that is both matron and sire... to itself! Has an invalid genetic code.\n    ///  In other words, cat ID 0 is invalid... ;-)\n    Kitty[] kitties;\n\n    /// @dev A mapping from cat IDs to the address that owns them. All cats have\n    ///  some valid owner address, even gen0 cats are created with a non-zero owner.\n    mapping (uint256 => address) public kittyIndexToOwner;\n\n    // @dev A mapping from owner address to count of tokens that address owns.\n    //  Used internally inside balanceOf() to resolve ownership count.\n    mapping (address => uint256) ownershipTokenCount;\n\n    /// @dev A mapping from KittyIDs to an address that has been approved to call\n    ///  transferFrom(). Each Kitty can only have one approved address for transfer\n    ///  at any time. A zero value means no approval is outstanding.\n    mapping (uint256 => address) public kittyIndexToApproved;\n\n    /// @dev A mapping from KittyIDs to an address that has been approved to use\n    ///  this Kitty for siring via breedWith(). Each Kitty can only have one approved\n    ///  address for siring at any time. A zero value means no approval is outstanding.\n    mapping (uint256 => address) public sireAllowedToAddress;\n\n    /// @dev Assigns ownership of a specific Kitty to an address.\n    function _transfer(address _from, address _to, uint256 _tokenId) internal {\n        // since the number of kittens is capped to 2^32\n        // there is no way to overflow this\n        ownershipTokenCount[_to]++;\n        // transfer ownership\n        kittyIndexToOwner[_tokenId] = _to;\n        // When creating new kittens _from is 0x0, but we can't account that address.\n        if (_from != address(0)) {\n            ownershipTokenCount[_from]--;\n            // once the kitten is transferred also clear sire allowances\n            delete sireAllowedToAddress[_tokenId];\n            // clear any previously approved ownership exchange\n            delete kittyIndexToApproved[_tokenId];\n        }\n        // Emit the transfer event.\n        emit Transfer(_from, _to, _tokenId);\n    }\n\n    /// @dev An internal method that creates a new kitty and stores it. This\n    ///  method doesn't do any checking and should only be called when the\n    ///  input data is known to be valid. Will generate both a Birth event\n    ///  and a Transfer event.\n    /// @param _matronId The kitty ID of the matron of this cat (zero for gen0)\n    /// @param _sireId The kitty ID of the sire of this cat (zero for gen0)\n    /// @param _generation The generation number of this cat, must be computed by caller.\n    /// @param _genes The kitty's genetic code.\n    /// @param _owner The inital owner of this cat, must be non-zero (except for the unKitty, ID 0)\n    function _createKitty(\n        uint256 _matronId,\n        uint256 _sireId,\n        uint256 _generation,\n        uint256 _genes,\n        address _owner\n    )\n        internal\n        returns (uint)\n    {\n        // These requires are not strictly necessary, our calling code should make\n        // sure that these conditions are never broken. However! _createKitty() is already\n        // an expensive call (for storage), and it doesn't hurt to be especially careful\n        // to ensure our data structures are always valid.\n        require(_matronId <= 4294967295);\n        require(_sireId <= 4294967295);\n        require(_generation <= 65535);\n\n        Kitty memory _kitty = Kitty({\n            genes: _genes,\n            birthTime: uint64(now),\n            cooldownEndTime: 0,\n            matronId: uint32(_matronId),\n            sireId: uint32(_sireId),\n            siringWithId: 0,\n            cooldownIndex: 0,\n            generation: uint16(_generation)\n        });\n        uint256 newKittenId = kitties.push(_kitty) - 1;\n\n        // It's probably never going to happen, 4 billion cats is A LOT, but\n        // let's just be 100% sure we never let this happen.\n        require(newKittenId <= 4294967295);\n\n        // emit the birth event\n        emit Birth(\n            _owner,\n            newKittenId,\n            uint256(_kitty.matronId),\n            uint256(_kitty.sireId),\n            _kitty.genes\n        );\n\n        // This will assign ownership, and also emit the Transfer event as\n        // per ERC721 draft\n        _transfer(0, _owner, newKittenId);\n\n        return newKittenId;\n    }\n}\n",
  "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyBase.sol",
  "ast": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyBase.sol",
    "exportedSymbols": {
      "KittyBase": [
        7168
      ]
    },
    "id": 7169,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6919,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "316:24:23"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyAccessControl.sol",
        "file": "./KittyAccessControl.sol",
        "id": 6920,
        "nodeType": "ImportDirective",
        "scope": 7169,
        "sourceUnit": 6663,
        "src": "342:34:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6921,
              "name": "KittyAccessControl",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6662,
              "src": "656:18:23",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_KittyAccessControl_$6662",
                "typeString": "contract KittyAccessControl"
              }
            },
            "id": 6922,
            "nodeType": "InheritanceSpecifier",
            "src": "656:18:23"
          }
        ],
        "contractDependencies": [
          6662
        ],
        "contractKind": "contract",
        "documentation": "@title Base contract for CryptoKitties. Holds all common structs, events and base variables.\n @author Axiom Zen (https://www.axiomzen.co)\n @dev See the KittyCore contract documentation to understand how the various contract facets are arranged.",
        "fullyImplemented": true,
        "id": 7168,
        "linearizedBaseContracts": [
          7168,
          6662
        ],
        "name": "KittyBase",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "@dev The Birth event is fired whenever a new kitten comes into existence. This obviously\n  includes any time a cat is created through the giveBirth method, but it is also called\n  when a new gen0 cat is created.",
            "id": 6934,
            "name": "Birth",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6933,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6924,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "949:21:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6923,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "949:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6926,
                  "indexed": false,
                  "name": "kittyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "972:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6925,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "972:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6928,
                  "indexed": false,
                  "name": "matronId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "989:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6927,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "989:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6930,
                  "indexed": false,
                  "name": "sireId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "1007:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6929,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1007:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6932,
                  "indexed": false,
                  "name": "genes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "1023:13:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6931,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1023:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "948:89:23"
            },
            "src": "937:101:23"
          },
          {
            "anonymous": false,
            "documentation": "@dev Transfer event as defined in current draft of ERC721. Emitted every time a kitten\n  ownership is assigned, including births.",
            "id": 6942,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6936,
                  "indexed": true,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 6942,
                  "src": "1204:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6935,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1204:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6938,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 6942,
                  "src": "1226:18:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6937,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1226:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6940,
                  "indexed": true,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6942,
                  "src": "1246:23:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6939,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1246:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1203:67:23"
            },
            "src": "1189:82:23"
          },
          {
            "canonicalName": "KittyBase.Kitty",
            "id": 6959,
            "members": [
              {
                "constant": false,
                "id": 6944,
                "name": "genes",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "1874:13:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 6943,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1874:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6946,
                "name": "birthTime",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "1973:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6945,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "1973:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6948,
                "name": "cooldownEndTime",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "2215:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6947,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "2215:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6950,
                "name": "matronId",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "2674:15:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 6949,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2674:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6952,
                "name": "sireId",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "2699:13:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 6951,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2699:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6954,
                "name": "siringWithId",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "2984:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 6953,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2984:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6956,
                "name": "cooldownIndex",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "3387:20:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6955,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "3387:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6958,
                "name": "generation",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "3766:17:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6957,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "3766:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Kitty",
            "nodeType": "StructDefinition",
            "scope": 7168,
            "src": "1716:2074:23",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7006,
            "name": "cooldowns",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "4302:395:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint32_$14_storage",
              "typeString": "uint32[14]"
            },
            "typeName": {
              "baseType": {
                "id": 6960,
                "name": "uint32",
                "nodeType": "ElementaryTypeName",
                "src": "4302:6:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                }
              },
              "id": 6962,
              "length": {
                "argumentTypes": null,
                "hexValue": "3134",
                "id": 6961,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "4309:2:23",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "14"
              },
              "nodeType": "ArrayTypeName",
              "src": "4302:10:23",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint32_$14_storage_ptr",
                "typeString": "uint32[14]"
              }
            },
            "value": {
              "argumentTypes": null,
              "components": [
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 6964,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4349:9:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_60_by_1",
                        "typeString": "int_const 60"
                      },
                      "value": "1"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_60_by_1",
                        "typeString": "int_const 60"
                      }
                    ],
                    "id": 6963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4342:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6965,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4342:17:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "32",
                      "id": 6967,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4376:9:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_120_by_1",
                        "typeString": "int_const 120"
                      },
                      "value": "2"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_120_by_1",
                        "typeString": "int_const 120"
                      }
                    ],
                    "id": 6966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4369:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6968,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4369:17:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "35",
                      "id": 6970,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4403:9:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_300_by_1",
                        "typeString": "int_const 300"
                      },
                      "value": "5"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_300_by_1",
                        "typeString": "int_const 300"
                      }
                    ],
                    "id": 6969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4396:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6971,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4396:17:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 6973,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4430:10:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_600_by_1",
                        "typeString": "int_const 600"
                      },
                      "value": "10"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_600_by_1",
                        "typeString": "int_const 600"
                      }
                    ],
                    "id": 6972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4423:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6974,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4423:18:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "3330",
                      "id": 6976,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4458:10:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1800_by_1",
                        "typeString": "int_const 1800"
                      },
                      "value": "30"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_1800_by_1",
                        "typeString": "int_const 1800"
                      }
                    ],
                    "id": 6975,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4451:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6977,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4451:18:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 6979,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4486:7:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_3600_by_1",
                        "typeString": "int_const 3600"
                      },
                      "value": "1"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_3600_by_1",
                        "typeString": "int_const 3600"
                      }
                    ],
                    "id": 6978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4479:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6980,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4479:15:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "32",
                      "id": 6982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4511:7:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_7200_by_1",
                        "typeString": "int_const 7200"
                      },
                      "value": "2"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_7200_by_1",
                        "typeString": "int_const 7200"
                      }
                    ],
                    "id": 6981,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4504:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6983,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4504:15:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "34",
                      "id": 6985,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4536:7:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_14400_by_1",
                        "typeString": "int_const 14400"
                      },
                      "value": "4"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_14400_by_1",
                        "typeString": "int_const 14400"
                      }
                    ],
                    "id": 6984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4529:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6986,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4529:15:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "38",
                      "id": 6988,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4561:7:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_28800_by_1",
                        "typeString": "int_const 28800"
                      },
                      "value": "8"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_28800_by_1",
                        "typeString": "int_const 28800"
                      }
                    ],
                    "id": 6987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4554:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6989,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4554:15:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "3136",
                      "id": 6991,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4586:8:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_57600_by_1",
                        "typeString": "int_const 57600"
                      },
                      "value": "16"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_57600_by_1",
                        "typeString": "int_const 57600"
                      }
                    ],
                    "id": 6990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4579:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6992,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4579:16:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 6994,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4612:6:23",
                      "subdenomination": "days",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_86400_by_1",
                        "typeString": "int_const 86400"
                      },
                      "value": "1"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_86400_by_1",
                        "typeString": "int_const 86400"
                      }
                    ],
                    "id": 6993,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4605:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6995,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4605:14:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "32",
                      "id": 6997,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4636:6:23",
                      "subdenomination": "days",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_172800_by_1",
                        "typeString": "int_const 172800"
                      },
                      "value": "2"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_172800_by_1",
                        "typeString": "int_const 172800"
                      }
                    ],
                    "id": 6996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4629:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6998,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4629:14:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "34",
                      "id": 7000,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4660:6:23",
                      "subdenomination": "days",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_345600_by_1",
                        "typeString": "int_const 345600"
                      },
                      "value": "4"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_345600_by_1",
                        "typeString": "int_const 345600"
                      }
                    ],
                    "id": 6999,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4653:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 7001,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4653:14:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "37",
                      "id": 7003,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4684:6:23",
                      "subdenomination": "days",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_604800_by_1",
                        "typeString": "int_const 604800"
                      },
                      "value": "7"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_604800_by_1",
                        "typeString": "int_const 604800"
                      }
                    ],
                    "id": 7002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4677:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 7004,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4677:14:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                }
              ],
              "id": 7005,
              "isConstant": false,
              "isInlineArray": true,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "TupleExpression",
              "src": "4332:365:23",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint32_$14_memory_ptr",
                "typeString": "uint32[14] memory"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7009,
            "name": "kitties",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "5132:15:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage",
              "typeString": "struct KittyBase.Kitty[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 7007,
                "name": "Kitty",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 6959,
                "src": "5132:5:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                  "typeString": "struct KittyBase.Kitty"
                }
              },
              "id": 7008,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "5132:7:23",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage_ptr",
                "typeString": "struct KittyBase.Kitty[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 7013,
            "name": "kittyIndexToOwner",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "5320:53:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
              "typeString": "mapping(uint256 => address)"
            },
            "typeName": {
              "id": 7012,
              "keyType": {
                "id": 7010,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "5329:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "5320:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                "typeString": "mapping(uint256 => address)"
              },
              "valueType": {
                "id": 7011,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "5340:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7017,
            "name": "ownershipTokenCount",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "5530:48:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 7016,
              "keyType": {
                "id": 7014,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "5539:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "5530:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 7015,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "5550:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 7021,
            "name": "kittyIndexToApproved",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "5820:56:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
              "typeString": "mapping(uint256 => address)"
            },
            "typeName": {
              "id": 7020,
              "keyType": {
                "id": 7018,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "5829:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "5820:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                "typeString": "mapping(uint256 => address)"
              },
              "valueType": {
                "id": 7019,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "5840:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7025,
            "name": "sireAllowedToAddress",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "6138:56:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
              "typeString": "mapping(uint256 => address)"
            },
            "typeName": {
              "id": 7024,
              "keyType": {
                "id": 7022,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "6147:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "6138:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                "typeString": "mapping(uint256 => address)"
              },
              "valueType": {
                "id": 7023,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "6158:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7073,
              "nodeType": "Block",
              "src": "6341:710:23",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "6452:26:23",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 7034,
                        "name": "ownershipTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7017,
                        "src": "6452:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 7036,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7035,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7029,
                        "src": "6472:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6452:24:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7038,
                  "nodeType": "ExpressionStatement",
                  "src": "6452:26:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7043,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 7039,
                        "name": "kittyIndexToOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7013,
                        "src": "6518:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                          "typeString": "mapping(uint256 => address)"
                        }
                      },
                      "id": 7041,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7040,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7031,
                        "src": "6536:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6518:27:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 7042,
                      "name": "_to",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7029,
                      "src": "6548:3:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6518:33:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 7044,
                  "nodeType": "ExpressionStatement",
                  "src": "6518:33:23"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 7049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7045,
                      "name": "_from",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7027,
                      "src": "6651:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 7047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6668:1:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 7046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6660:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 7048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6660:10:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6651:19:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 7066,
                  "nodeType": "IfStatement",
                  "src": "6647:317:23",
                  "trueBody": {
                    "id": 7065,
                    "nodeType": "Block",
                    "src": "6672:292:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "6686:28:23",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7050,
                              "name": "ownershipTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7017,
                              "src": "6686:19:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 7052,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7051,
                              "name": "_from",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7027,
                              "src": "6706:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6686:26:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7054,
                        "nodeType": "ExpressionStatement",
                        "src": "6686:28:23"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7058,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "6801:37:23",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7055,
                              "name": "sireAllowedToAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7025,
                              "src": "6808:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                                "typeString": "mapping(uint256 => address)"
                              }
                            },
                            "id": 7057,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7056,
                              "name": "_tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7031,
                              "src": "6829:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6808:30:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7059,
                        "nodeType": "ExpressionStatement",
                        "src": "6801:37:23"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7063,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "6916:37:23",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7060,
                              "name": "kittyIndexToApproved",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7021,
                              "src": "6923:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                                "typeString": "mapping(uint256 => address)"
                              }
                            },
                            "id": 7062,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7061,
                              "name": "_tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7031,
                              "src": "6944:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6923:30:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7064,
                        "nodeType": "ExpressionStatement",
                        "src": "6916:37:23"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7068,
                        "name": "_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7027,
                        "src": "7023:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7069,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7029,
                        "src": "7030:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7070,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7031,
                        "src": "7035:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7067,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6942,
                      "src": "7014:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 7071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7014:30:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7072,
                  "nodeType": "EmitStatement",
                  "src": "7009:35:23"
                }
              ]
            },
            "documentation": "@dev Assigns ownership of a specific Kitty to an address.",
            "id": 7074,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7027,
                  "name": "_from",
                  "nodeType": "VariableDeclaration",
                  "scope": 7074,
                  "src": "6286:13:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6286:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7029,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 7074,
                  "src": "6301:11:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7028,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6301:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7031,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7074,
                  "src": "6314:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7030,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6314:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6285:46:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 7033,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6341:0:23"
            },
            "scope": 7168,
            "src": "6267:784:23",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7166,
              "nodeType": "Block",
              "src": "7910:1400:23",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7090,
                          "name": "_matronId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7076,
                          "src": "8250:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "34323934393637323935",
                          "id": 7091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8263:10:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4294967295_by_1",
                            "typeString": "int_const 4294967295"
                          },
                          "value": "4294967295"
                        },
                        "src": "8250:23:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7089,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "8242:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8242:32:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7094,
                  "nodeType": "ExpressionStatement",
                  "src": "8242:32:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7098,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7096,
                          "name": "_sireId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7078,
                          "src": "8292:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "34323934393637323935",
                          "id": 7097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8303:10:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4294967295_by_1",
                            "typeString": "int_const 4294967295"
                          },
                          "value": "4294967295"
                        },
                        "src": "8292:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7095,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "8284:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7099,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8284:30:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7100,
                  "nodeType": "ExpressionStatement",
                  "src": "8284:30:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7104,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7102,
                          "name": "_generation",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7080,
                          "src": "8332:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "3635353335",
                          "id": 7103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8347:5:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_65535_by_1",
                            "typeString": "int_const 65535"
                          },
                          "value": "65535"
                        },
                        "src": "8332:20:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7101,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "8324:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8324:29:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7106,
                  "nodeType": "ExpressionStatement",
                  "src": "8324:29:23"
                },
                {
                  "assignments": [
                    7108
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7108,
                      "name": "_kitty",
                      "nodeType": "VariableDeclaration",
                      "scope": 7167,
                      "src": "8364:19:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                        "typeString": "struct KittyBase.Kitty"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7107,
                        "name": "Kitty",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6959,
                        "src": "8364:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                          "typeString": "struct KittyBase.Kitty"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7127,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7110,
                        "name": "_genes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7082,
                        "src": "8413:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7112,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "8451:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7111,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8444:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 7113,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8444:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7114,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8486:1:23",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7116,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7076,
                            "src": "8518:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7115,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8511:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 7117,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8511:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7119,
                            "name": "_sireId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7078,
                            "src": "8557:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7118,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8550:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 7120,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8550:15:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8593:1:23",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8623:1:23",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7124,
                            "name": "_generation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7080,
                            "src": "8657:11:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7123,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8650:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint16_$",
                            "typeString": "type(uint16)"
                          },
                          "typeName": "uint16"
                        },
                        "id": 7125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8650:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": null,
                      "id": 7109,
                      "name": "Kitty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6959,
                      "src": "8386:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Kitty_$6959_storage_ptr_$",
                        "typeString": "type(struct KittyBase.Kitty storage pointer)"
                      }
                    },
                    "id": 7126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [
                      "genes",
                      "birthTime",
                      "cooldownEndTime",
                      "matronId",
                      "sireId",
                      "siringWithId",
                      "cooldownIndex",
                      "generation"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "8386:294:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Kitty_$6959_memory",
                      "typeString": "struct KittyBase.Kitty memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8364:316:23"
                },
                {
                  "assignments": [
                    7129
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7129,
                      "name": "newKittenId",
                      "nodeType": "VariableDeclaration",
                      "scope": 7167,
                      "src": "8690:19:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7128,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8690:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7136,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 7132,
                          "name": "_kitty",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7108,
                          "src": "8725:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                            "typeString": "struct KittyBase.Kitty memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                            "typeString": "struct KittyBase.Kitty memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 7130,
                          "name": "kitties",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7009,
                          "src": "8712:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage",
                            "typeString": "struct KittyBase.Kitty storage ref[] storage ref"
                          }
                        },
                        "id": 7131,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "push",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8712:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Kitty_$6959_storage_$returns$_t_uint256_$",
                          "typeString": "function (struct KittyBase.Kitty storage ref) returns (uint256)"
                        }
                      },
                      "id": 7133,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8712:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 7134,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8735:1:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "8712:24:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8690:46:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7138,
                          "name": "newKittenId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7129,
                          "src": "8893:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "34323934393637323935",
                          "id": 7139,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8908:10:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4294967295_by_1",
                            "typeString": "int_const 4294967295"
                          },
                          "value": "4294967295"
                        },
                        "src": "8893:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7137,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "8885:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8885:34:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7142,
                  "nodeType": "ExpressionStatement",
                  "src": "8885:34:23"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7144,
                        "name": "_owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7084,
                        "src": "8986:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7145,
                        "name": "newKittenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7129,
                        "src": "9006:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7147,
                              "name": "_kitty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7108,
                              "src": "9039:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                                "typeString": "struct KittyBase.Kitty memory"
                              }
                            },
                            "id": 7148,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "matronId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6950,
                            "src": "9039:15:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          ],
                          "id": 7146,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9031:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 7149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9031:24:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7151,
                              "name": "_kitty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7108,
                              "src": "9077:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                                "typeString": "struct KittyBase.Kitty memory"
                              }
                            },
                            "id": 7152,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sireId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6952,
                            "src": "9077:13:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          ],
                          "id": 7150,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9069:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 7153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9069:22:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7154,
                          "name": "_kitty",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7108,
                          "src": "9105:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                            "typeString": "struct KittyBase.Kitty memory"
                          }
                        },
                        "id": 7155,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "genes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6944,
                        "src": "9105:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7143,
                      "name": "Birth",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6934,
                      "src": "8967:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256,uint256,uint256,uint256)"
                      }
                    },
                    "id": 7156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8967:160:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7157,
                  "nodeType": "EmitStatement",
                  "src": "8962:165:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7159,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9251:1:23",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 7160,
                        "name": "_owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7084,
                        "src": "9254:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7161,
                        "name": "newKittenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7129,
                        "src": "9262:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7158,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7074,
                      "src": "9241:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 7162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9241:33:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7163,
                  "nodeType": "ExpressionStatement",
                  "src": "9241:33:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7164,
                    "name": "newKittenId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7129,
                    "src": "9292:11:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7088,
                  "id": 7165,
                  "nodeType": "Return",
                  "src": "9285:18:23"
                }
              ]
            },
            "documentation": "@dev An internal method that creates a new kitty and stores it. This\n  method doesn't do any checking and should only be called when the\n  input data is known to be valid. Will generate both a Birth event\n  and a Transfer event.\n @param _matronId The kitty ID of the matron of this cat (zero for gen0)\n @param _sireId The kitty ID of the sire of this cat (zero for gen0)\n @param _generation The generation number of this cat, must be computed by caller.\n @param _genes The kitty's genetic code.\n @param _owner The inital owner of this cat, must be non-zero (except for the unKitty, ID 0)",
            "id": 7167,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_createKitty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7085,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7076,
                  "name": "_matronId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7740:17:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7075,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7740:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7078,
                  "name": "_sireId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7767:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7077,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7767:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7080,
                  "name": "_generation",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7792:19:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7079,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7792:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7082,
                  "name": "_genes",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7821:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7081,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7821:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7084,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7845:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7083,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7845:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7730:135:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 7088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7087,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7900:4:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7086,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7900:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7899:6:23"
            },
            "scope": 7168,
            "src": "7709:1601:23",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 7169,
        "src": "634:8678:23"
      }
    ],
    "src": "316:8997:23"
  },
  "legacyAST": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyBase.sol",
    "exportedSymbols": {
      "KittyBase": [
        7168
      ]
    },
    "id": 7169,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6919,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "316:24:23"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyAccessControl.sol",
        "file": "./KittyAccessControl.sol",
        "id": 6920,
        "nodeType": "ImportDirective",
        "scope": 7169,
        "sourceUnit": 6663,
        "src": "342:34:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6921,
              "name": "KittyAccessControl",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6662,
              "src": "656:18:23",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_KittyAccessControl_$6662",
                "typeString": "contract KittyAccessControl"
              }
            },
            "id": 6922,
            "nodeType": "InheritanceSpecifier",
            "src": "656:18:23"
          }
        ],
        "contractDependencies": [
          6662
        ],
        "contractKind": "contract",
        "documentation": "@title Base contract for CryptoKitties. Holds all common structs, events and base variables.\n @author Axiom Zen (https://www.axiomzen.co)\n @dev See the KittyCore contract documentation to understand how the various contract facets are arranged.",
        "fullyImplemented": true,
        "id": 7168,
        "linearizedBaseContracts": [
          7168,
          6662
        ],
        "name": "KittyBase",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "@dev The Birth event is fired whenever a new kitten comes into existence. This obviously\n  includes any time a cat is created through the giveBirth method, but it is also called\n  when a new gen0 cat is created.",
            "id": 6934,
            "name": "Birth",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6933,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6924,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "949:21:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6923,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "949:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6926,
                  "indexed": false,
                  "name": "kittyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "972:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6925,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "972:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6928,
                  "indexed": false,
                  "name": "matronId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "989:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6927,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "989:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6930,
                  "indexed": false,
                  "name": "sireId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "1007:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6929,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1007:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6932,
                  "indexed": false,
                  "name": "genes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6934,
                  "src": "1023:13:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6931,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1023:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "948:89:23"
            },
            "src": "937:101:23"
          },
          {
            "anonymous": false,
            "documentation": "@dev Transfer event as defined in current draft of ERC721. Emitted every time a kitten\n  ownership is assigned, including births.",
            "id": 6942,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6936,
                  "indexed": true,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 6942,
                  "src": "1204:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6935,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1204:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6938,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 6942,
                  "src": "1226:18:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6937,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1226:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6940,
                  "indexed": true,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6942,
                  "src": "1246:23:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6939,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1246:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1203:67:23"
            },
            "src": "1189:82:23"
          },
          {
            "canonicalName": "KittyBase.Kitty",
            "id": 6959,
            "members": [
              {
                "constant": false,
                "id": 6944,
                "name": "genes",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "1874:13:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 6943,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1874:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6946,
                "name": "birthTime",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "1973:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6945,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "1973:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6948,
                "name": "cooldownEndTime",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "2215:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6947,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "2215:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6950,
                "name": "matronId",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "2674:15:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 6949,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2674:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6952,
                "name": "sireId",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "2699:13:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 6951,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2699:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6954,
                "name": "siringWithId",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "2984:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 6953,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2984:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6956,
                "name": "cooldownIndex",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "3387:20:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6955,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "3387:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6958,
                "name": "generation",
                "nodeType": "VariableDeclaration",
                "scope": 6959,
                "src": "3766:17:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6957,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "3766:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Kitty",
            "nodeType": "StructDefinition",
            "scope": 7168,
            "src": "1716:2074:23",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7006,
            "name": "cooldowns",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "4302:395:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint32_$14_storage",
              "typeString": "uint32[14]"
            },
            "typeName": {
              "baseType": {
                "id": 6960,
                "name": "uint32",
                "nodeType": "ElementaryTypeName",
                "src": "4302:6:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                }
              },
              "id": 6962,
              "length": {
                "argumentTypes": null,
                "hexValue": "3134",
                "id": 6961,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "4309:2:23",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "14"
              },
              "nodeType": "ArrayTypeName",
              "src": "4302:10:23",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint32_$14_storage_ptr",
                "typeString": "uint32[14]"
              }
            },
            "value": {
              "argumentTypes": null,
              "components": [
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 6964,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4349:9:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_60_by_1",
                        "typeString": "int_const 60"
                      },
                      "value": "1"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_60_by_1",
                        "typeString": "int_const 60"
                      }
                    ],
                    "id": 6963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4342:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6965,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4342:17:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "32",
                      "id": 6967,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4376:9:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_120_by_1",
                        "typeString": "int_const 120"
                      },
                      "value": "2"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_120_by_1",
                        "typeString": "int_const 120"
                      }
                    ],
                    "id": 6966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4369:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6968,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4369:17:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "35",
                      "id": 6970,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4403:9:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_300_by_1",
                        "typeString": "int_const 300"
                      },
                      "value": "5"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_300_by_1",
                        "typeString": "int_const 300"
                      }
                    ],
                    "id": 6969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4396:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6971,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4396:17:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 6973,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4430:10:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_600_by_1",
                        "typeString": "int_const 600"
                      },
                      "value": "10"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_600_by_1",
                        "typeString": "int_const 600"
                      }
                    ],
                    "id": 6972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4423:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6974,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4423:18:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "3330",
                      "id": 6976,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4458:10:23",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1800_by_1",
                        "typeString": "int_const 1800"
                      },
                      "value": "30"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_1800_by_1",
                        "typeString": "int_const 1800"
                      }
                    ],
                    "id": 6975,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4451:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6977,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4451:18:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 6979,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4486:7:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_3600_by_1",
                        "typeString": "int_const 3600"
                      },
                      "value": "1"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_3600_by_1",
                        "typeString": "int_const 3600"
                      }
                    ],
                    "id": 6978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4479:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6980,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4479:15:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "32",
                      "id": 6982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4511:7:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_7200_by_1",
                        "typeString": "int_const 7200"
                      },
                      "value": "2"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_7200_by_1",
                        "typeString": "int_const 7200"
                      }
                    ],
                    "id": 6981,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4504:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6983,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4504:15:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "34",
                      "id": 6985,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4536:7:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_14400_by_1",
                        "typeString": "int_const 14400"
                      },
                      "value": "4"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_14400_by_1",
                        "typeString": "int_const 14400"
                      }
                    ],
                    "id": 6984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4529:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6986,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4529:15:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "38",
                      "id": 6988,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4561:7:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_28800_by_1",
                        "typeString": "int_const 28800"
                      },
                      "value": "8"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_28800_by_1",
                        "typeString": "int_const 28800"
                      }
                    ],
                    "id": 6987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4554:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6989,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4554:15:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "3136",
                      "id": 6991,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4586:8:23",
                      "subdenomination": "hours",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_57600_by_1",
                        "typeString": "int_const 57600"
                      },
                      "value": "16"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_57600_by_1",
                        "typeString": "int_const 57600"
                      }
                    ],
                    "id": 6990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4579:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6992,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4579:16:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 6994,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4612:6:23",
                      "subdenomination": "days",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_86400_by_1",
                        "typeString": "int_const 86400"
                      },
                      "value": "1"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_86400_by_1",
                        "typeString": "int_const 86400"
                      }
                    ],
                    "id": 6993,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4605:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6995,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4605:14:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "32",
                      "id": 6997,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4636:6:23",
                      "subdenomination": "days",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_172800_by_1",
                        "typeString": "int_const 172800"
                      },
                      "value": "2"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_172800_by_1",
                        "typeString": "int_const 172800"
                      }
                    ],
                    "id": 6996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4629:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 6998,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4629:14:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "34",
                      "id": 7000,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4660:6:23",
                      "subdenomination": "days",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_345600_by_1",
                        "typeString": "int_const 345600"
                      },
                      "value": "4"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_345600_by_1",
                        "typeString": "int_const 345600"
                      }
                    ],
                    "id": 6999,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4653:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 7001,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4653:14:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "37",
                      "id": 7003,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4684:6:23",
                      "subdenomination": "days",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_604800_by_1",
                        "typeString": "int_const 604800"
                      },
                      "value": "7"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_604800_by_1",
                        "typeString": "int_const 604800"
                      }
                    ],
                    "id": 7002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "4677:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": "uint32"
                  },
                  "id": 7004,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4677:14:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                }
              ],
              "id": 7005,
              "isConstant": false,
              "isInlineArray": true,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "TupleExpression",
              "src": "4332:365:23",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint32_$14_memory_ptr",
                "typeString": "uint32[14] memory"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7009,
            "name": "kitties",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "5132:15:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage",
              "typeString": "struct KittyBase.Kitty[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 7007,
                "name": "Kitty",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 6959,
                "src": "5132:5:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                  "typeString": "struct KittyBase.Kitty"
                }
              },
              "id": 7008,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "5132:7:23",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage_ptr",
                "typeString": "struct KittyBase.Kitty[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 7013,
            "name": "kittyIndexToOwner",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "5320:53:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
              "typeString": "mapping(uint256 => address)"
            },
            "typeName": {
              "id": 7012,
              "keyType": {
                "id": 7010,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "5329:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "5320:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                "typeString": "mapping(uint256 => address)"
              },
              "valueType": {
                "id": 7011,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "5340:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7017,
            "name": "ownershipTokenCount",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "5530:48:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 7016,
              "keyType": {
                "id": 7014,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "5539:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "5530:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 7015,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "5550:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 7021,
            "name": "kittyIndexToApproved",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "5820:56:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
              "typeString": "mapping(uint256 => address)"
            },
            "typeName": {
              "id": 7020,
              "keyType": {
                "id": 7018,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "5829:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "5820:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                "typeString": "mapping(uint256 => address)"
              },
              "valueType": {
                "id": 7019,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "5840:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7025,
            "name": "sireAllowedToAddress",
            "nodeType": "VariableDeclaration",
            "scope": 7168,
            "src": "6138:56:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
              "typeString": "mapping(uint256 => address)"
            },
            "typeName": {
              "id": 7024,
              "keyType": {
                "id": 7022,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "6147:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "6138:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                "typeString": "mapping(uint256 => address)"
              },
              "valueType": {
                "id": 7023,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "6158:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7073,
              "nodeType": "Block",
              "src": "6341:710:23",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "6452:26:23",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 7034,
                        "name": "ownershipTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7017,
                        "src": "6452:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 7036,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7035,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7029,
                        "src": "6472:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6452:24:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7038,
                  "nodeType": "ExpressionStatement",
                  "src": "6452:26:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7043,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 7039,
                        "name": "kittyIndexToOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7013,
                        "src": "6518:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                          "typeString": "mapping(uint256 => address)"
                        }
                      },
                      "id": 7041,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7040,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7031,
                        "src": "6536:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6518:27:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 7042,
                      "name": "_to",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7029,
                      "src": "6548:3:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6518:33:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 7044,
                  "nodeType": "ExpressionStatement",
                  "src": "6518:33:23"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 7049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7045,
                      "name": "_from",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7027,
                      "src": "6651:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 7047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6668:1:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 7046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6660:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 7048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6660:10:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6651:19:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 7066,
                  "nodeType": "IfStatement",
                  "src": "6647:317:23",
                  "trueBody": {
                    "id": 7065,
                    "nodeType": "Block",
                    "src": "6672:292:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "6686:28:23",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7050,
                              "name": "ownershipTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7017,
                              "src": "6686:19:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 7052,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7051,
                              "name": "_from",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7027,
                              "src": "6706:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6686:26:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7054,
                        "nodeType": "ExpressionStatement",
                        "src": "6686:28:23"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7058,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "6801:37:23",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7055,
                              "name": "sireAllowedToAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7025,
                              "src": "6808:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                                "typeString": "mapping(uint256 => address)"
                              }
                            },
                            "id": 7057,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7056,
                              "name": "_tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7031,
                              "src": "6829:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6808:30:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7059,
                        "nodeType": "ExpressionStatement",
                        "src": "6801:37:23"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7063,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "6916:37:23",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7060,
                              "name": "kittyIndexToApproved",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7021,
                              "src": "6923:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                                "typeString": "mapping(uint256 => address)"
                              }
                            },
                            "id": 7062,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7061,
                              "name": "_tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7031,
                              "src": "6944:8:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6923:30:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7064,
                        "nodeType": "ExpressionStatement",
                        "src": "6916:37:23"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7068,
                        "name": "_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7027,
                        "src": "7023:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7069,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7029,
                        "src": "7030:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7070,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7031,
                        "src": "7035:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7067,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6942,
                      "src": "7014:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 7071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7014:30:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7072,
                  "nodeType": "EmitStatement",
                  "src": "7009:35:23"
                }
              ]
            },
            "documentation": "@dev Assigns ownership of a specific Kitty to an address.",
            "id": 7074,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7027,
                  "name": "_from",
                  "nodeType": "VariableDeclaration",
                  "scope": 7074,
                  "src": "6286:13:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6286:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7029,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 7074,
                  "src": "6301:11:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7028,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6301:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7031,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7074,
                  "src": "6314:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7030,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6314:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6285:46:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 7033,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6341:0:23"
            },
            "scope": 7168,
            "src": "6267:784:23",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7166,
              "nodeType": "Block",
              "src": "7910:1400:23",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7090,
                          "name": "_matronId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7076,
                          "src": "8250:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "34323934393637323935",
                          "id": 7091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8263:10:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4294967295_by_1",
                            "typeString": "int_const 4294967295"
                          },
                          "value": "4294967295"
                        },
                        "src": "8250:23:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7089,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "8242:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8242:32:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7094,
                  "nodeType": "ExpressionStatement",
                  "src": "8242:32:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7098,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7096,
                          "name": "_sireId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7078,
                          "src": "8292:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "34323934393637323935",
                          "id": 7097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8303:10:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4294967295_by_1",
                            "typeString": "int_const 4294967295"
                          },
                          "value": "4294967295"
                        },
                        "src": "8292:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7095,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "8284:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7099,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8284:30:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7100,
                  "nodeType": "ExpressionStatement",
                  "src": "8284:30:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7104,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7102,
                          "name": "_generation",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7080,
                          "src": "8332:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "3635353335",
                          "id": 7103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8347:5:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_65535_by_1",
                            "typeString": "int_const 65535"
                          },
                          "value": "65535"
                        },
                        "src": "8332:20:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7101,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "8324:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8324:29:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7106,
                  "nodeType": "ExpressionStatement",
                  "src": "8324:29:23"
                },
                {
                  "assignments": [
                    7108
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7108,
                      "name": "_kitty",
                      "nodeType": "VariableDeclaration",
                      "scope": 7167,
                      "src": "8364:19:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                        "typeString": "struct KittyBase.Kitty"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7107,
                        "name": "Kitty",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6959,
                        "src": "8364:5:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                          "typeString": "struct KittyBase.Kitty"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7127,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7110,
                        "name": "_genes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7082,
                        "src": "8413:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7112,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "8451:3:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7111,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8444:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 7113,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8444:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7114,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8486:1:23",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7116,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7076,
                            "src": "8518:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7115,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8511:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 7117,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8511:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7119,
                            "name": "_sireId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7078,
                            "src": "8557:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7118,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8550:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 7120,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8550:15:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8593:1:23",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8623:1:23",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7124,
                            "name": "_generation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7080,
                            "src": "8657:11:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7123,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8650:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint16_$",
                            "typeString": "type(uint16)"
                          },
                          "typeName": "uint16"
                        },
                        "id": 7125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8650:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": null,
                      "id": 7109,
                      "name": "Kitty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6959,
                      "src": "8386:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Kitty_$6959_storage_ptr_$",
                        "typeString": "type(struct KittyBase.Kitty storage pointer)"
                      }
                    },
                    "id": 7126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [
                      "genes",
                      "birthTime",
                      "cooldownEndTime",
                      "matronId",
                      "sireId",
                      "siringWithId",
                      "cooldownIndex",
                      "generation"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "8386:294:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Kitty_$6959_memory",
                      "typeString": "struct KittyBase.Kitty memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8364:316:23"
                },
                {
                  "assignments": [
                    7129
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7129,
                      "name": "newKittenId",
                      "nodeType": "VariableDeclaration",
                      "scope": 7167,
                      "src": "8690:19:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7128,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8690:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7136,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 7132,
                          "name": "_kitty",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7108,
                          "src": "8725:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                            "typeString": "struct KittyBase.Kitty memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                            "typeString": "struct KittyBase.Kitty memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 7130,
                          "name": "kitties",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7009,
                          "src": "8712:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage",
                            "typeString": "struct KittyBase.Kitty storage ref[] storage ref"
                          }
                        },
                        "id": 7131,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "push",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8712:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Kitty_$6959_storage_$returns$_t_uint256_$",
                          "typeString": "function (struct KittyBase.Kitty storage ref) returns (uint256)"
                        }
                      },
                      "id": 7133,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8712:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 7134,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8735:1:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "8712:24:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8690:46:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7138,
                          "name": "newKittenId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7129,
                          "src": "8893:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "34323934393637323935",
                          "id": 7139,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8908:10:23",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4294967295_by_1",
                            "typeString": "int_const 4294967295"
                          },
                          "value": "4294967295"
                        },
                        "src": "8893:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7137,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "8885:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8885:34:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7142,
                  "nodeType": "ExpressionStatement",
                  "src": "8885:34:23"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7144,
                        "name": "_owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7084,
                        "src": "8986:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7145,
                        "name": "newKittenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7129,
                        "src": "9006:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7147,
                              "name": "_kitty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7108,
                              "src": "9039:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                                "typeString": "struct KittyBase.Kitty memory"
                              }
                            },
                            "id": 7148,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "matronId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6950,
                            "src": "9039:15:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          ],
                          "id": 7146,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9031:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 7149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9031:24:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7151,
                              "name": "_kitty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7108,
                              "src": "9077:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                                "typeString": "struct KittyBase.Kitty memory"
                              }
                            },
                            "id": 7152,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sireId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6952,
                            "src": "9077:13:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          ],
                          "id": 7150,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9069:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 7153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9069:22:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7154,
                          "name": "_kitty",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7108,
                          "src": "9105:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Kitty_$6959_memory_ptr",
                            "typeString": "struct KittyBase.Kitty memory"
                          }
                        },
                        "id": 7155,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "genes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6944,
                        "src": "9105:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7143,
                      "name": "Birth",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6934,
                      "src": "8967:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256,uint256,uint256,uint256)"
                      }
                    },
                    "id": 7156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8967:160:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7157,
                  "nodeType": "EmitStatement",
                  "src": "8962:165:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7159,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9251:1:23",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 7160,
                        "name": "_owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7084,
                        "src": "9254:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7161,
                        "name": "newKittenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7129,
                        "src": "9262:11:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7158,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7074,
                      "src": "9241:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 7162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9241:33:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7163,
                  "nodeType": "ExpressionStatement",
                  "src": "9241:33:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7164,
                    "name": "newKittenId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7129,
                    "src": "9292:11:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7088,
                  "id": 7165,
                  "nodeType": "Return",
                  "src": "9285:18:23"
                }
              ]
            },
            "documentation": "@dev An internal method that creates a new kitty and stores it. This\n  method doesn't do any checking and should only be called when the\n  input data is known to be valid. Will generate both a Birth event\n  and a Transfer event.\n @param _matronId The kitty ID of the matron of this cat (zero for gen0)\n @param _sireId The kitty ID of the sire of this cat (zero for gen0)\n @param _generation The generation number of this cat, must be computed by caller.\n @param _genes The kitty's genetic code.\n @param _owner The inital owner of this cat, must be non-zero (except for the unKitty, ID 0)",
            "id": 7167,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_createKitty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7085,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7076,
                  "name": "_matronId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7740:17:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7075,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7740:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7078,
                  "name": "_sireId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7767:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7077,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7767:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7080,
                  "name": "_generation",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7792:19:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7079,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7792:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7082,
                  "name": "_genes",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7821:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7081,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7821:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7084,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7845:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7083,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7845:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7730:135:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 7088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7087,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7167,
                  "src": "7900:4:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7086,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7900:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7899:6:23"
            },
            "scope": 7168,
            "src": "7709:1601:23",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 7169,
        "src": "634:8678:23"
      }
    ],
    "src": "316:8997:23"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-02T14:04:10.991Z"
}