code: def __init__(self, ctx):
      if not isinstance(ctx, WrappedCtx):
          reserved_attrs = type(self)._pt_reserved_attrs
          for name in reserved_attrs:
              if not hasattr(ctx, name):
                  continue
              raise RuntimeError(
                  f"PyTorch reserves the {reserved_attrs} field on ctx. "
                  "Please name your fields on ctx something else to avoid name "
                  "collision."
              )
      self._pt_inner_ctx = ctx
  
imports: import torch
  from torch._ops import HigherOrderOperator
  from torch._C._functorch import TransformType
  from torch._functorch.utils import enable_single_level_autograd_function
  import torch.utils._pytree
  from torch._C._functorch import _wrap_for_grad, _unwrap_for_grad, current_level
  from torch._functorch.vmap import wrap_batched, unwrap_batched, restore_vmap, _add_batch_dim
  from torch._functorch.apis import vmap
  from torch._functorch.vmap import _broadcast_to_and_flatten
  from torch.autograd.forward_ad import _set_fwd_grad_enabled
  from typing import Any, NamedTuple, Tuple
label_desc: Use image node_id 1 to create a new WrappedCtx object  with example: obj = WrappedCtx(ctx)