code: def make_windowed_adapt_kernel(
      *,
      kind,
      proposal_kernel_kwargs,
      dual_averaging_kwargs,
      initial_running_variance,
      chain_axis_names,
      shard_axis_names,
  ):
      """Constructs a windowed adaptation kernel."""
      kernel = WindowedAdaptation(
          make_slow_adapt_kernel(
              kind=kind,
              proposal_kernel_kwargs=proposal_kernel_kwargs,
              dual_averaging_kwargs=dual_averaging_kwargs,
              initial_running_variance=initial_running_variance,
          ),
          num_adaptation_steps=dual_averaging_kwargs[
              "num_adaptation_steps"
          ],
      )
      if chain_axis_names:
          kernel = sharded.Sharded(kernel, chain_axis_names)
      if shard_axis_names:
          kernel = kernel.experimental_with_shard_axes(shard_axis_names)
      return kernel
  
imports: import collections
  import functools
  import warnings
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import chain
  from tensorflow_probability.python.bijectors import invert
  from tensorflow_probability.python.bijectors import joint_map
  from tensorflow_probability.python.bijectors import reshape
  from tensorflow_probability.python.bijectors import restructure
  from tensorflow_probability.python.experimental.mcmc import diagonal_mass_matrix_adaptation
  from tensorflow_probability.python.experimental.mcmc import initialization
  from tensorflow_probability.python.experimental.mcmc import preconditioned_hmc
  from tensorflow_probability.python.experimental.mcmc import preconditioned_nuts
  from tensorflow_probability.python.experimental.mcmc import preconditioning_utils
  from tensorflow_probability.python.experimental.mcmc import sharded
  from tensorflow_probability.python.experimental.stats import sample_stats
  from tensorflow_probability.python.internal import nest_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import unnest
  from tensorflow_probability.python.math import generic
  from tensorflow_probability.python.mcmc import dual_averaging_step_size_adaptation
  from tensorflow_probability.python.mcmc import kernel
  from tensorflow_probability.python.mcmc import sample
  from tensorflow_probability.python.mcmc.internal import util
  from tensorflow.python.ops import control_flow_util
  from tensorflow.python.util import nest
label_desc: Use image node_id 9 for calling a global function with example usage: make_windowed_adapt_kernel() and returns: kernel