code: def __call__(
      self,
      model: Model,
      inputs: T,
      criterion: Any,
      *,
      epsilons: Union[Sequence[Union[float, None]], float, None],
      **kwargs: Any,
  ) -> Union[Tuple[List[T], List[T], T], Tuple[T, T, T]]:
      # in principle, the type of criterion is Union[Criterion, T]
      # but we want to give subclasses the option to specify the supported
      # criteria explicitly (i.e. specifying a stricter type constraint)
      ...
  
imports: from typing import Callable, TypeVar, Any, Union, Optional, Sequence, List, Tuple, Dict
  from typing_extensions import final, overload
  from abc import ABC, abstractmethod
  from collections.abc import Iterable
  import eagerpy
  from ..models import Model
  from ..criteria import Criterion
  from ..criteria import Misclassification
  from ..devutils import atleast_kd
  from ..distances import Distance
label_desc: Use image node_id 3 for calling the Attack obj's underlying member method code with example usage: obj.__call__(model, inputs, criterion) without return types