code: def project_perturbation_inf(
      perturbation, epsilon, input_image, image_bounds
  ):
      """Project `perturbation` onto L-infinity ball of radius `epsilon`."""
      if epsilon is None:
          return perturbation
  
      clipped_perturbation = jnp.clip(perturbation, -epsilon, epsilon)
      new_image = jnp.clip(
          input_image + clipped_perturbation,
          image_bounds[0],
          image_bounds[1],
      )
      return new_image - input_image
  
imports: import functools
  import jax
  import jax.numpy
  import optax
label_desc: Use image node_id 1 for calling a global function with example usage: project_perturbation_inf(perturbation, epsilon, input_image, image_bounds) and returns: unknown, perturbation