code: def _all_zero_hessian(tape):
      num_params = len(tape.trainable_params)
  
      zeros_list = []
      for m in tape.measurements:
          shape = (
              2 ** len(m.wires) if isinstance(m, ProbabilityMP) else ()
          )
  
          zeros = tuple(
              tuple(qml.math.zeros(shape) for _ in range(num_params))
              for _ in range(num_params)
          )
          if num_params == 1:
              zeros = zeros[0][0]
  
          zeros_list.append(zeros)
  
      if len(tape.measurements) == 1:
          return [], lambda _: zeros_list[0]
  
      return [], lambda _: tuple(zeros_list)
  
imports: import itertools
  import warnings
  from functools import partial
  from typing import Sequence, Callable
  import numpy
  import pennylane
  from pennylane.measurements import ProbabilityMP, StateMP, VarianceMP
  from pennylane.transforms import transform
  from .general_shift_rules import _combine_shift_rules, generate_multishifted_tapes, generate_shifted_tapes
  from .gradient_transform import find_and_validate_gradient_methods
  from .parameter_shift import _get_operation_recipe
  from .hessian_transform import _process_jacs
label_desc: Use image node_id 6 for calling a global function with example usage: _all_zero_hessian(tape) and returns: list,  function, list,  function