code: def ascend_bip32(bip32_pub_node, secret_exponent, child):
      
      i_as_bytes = struct.pack(">l", child)
      sec = public_pair_to_sec(bip32_pub_node.public_pair(), compressed=True)
      data = sec + i_as_bytes
      I64 = hmac.HMAC(key=bip32_pub_node._chain_code, msg=data, digestmod=hashlib.sha512).digest()
      I_left_as_exponent = from_bytes_32(I64[:32])
      return (secret_exponent - I_left_as_exponent) % bip32_pub_node._generator.order()
docs: Given a BIP32Node with public derivation child "child" with a known private key,
      return the secret exponent for the bip32_pub_node.