






from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


a		:       Any			     = {"configuration_wavlm": ["WAVLM_PRETRAINED_CONFIG_ARCHIVE_MAP", "WavLMConfig"]}

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       a		:       List[Any]			     = [
           "WAVLM_PRETRAINED_MODEL_ARCHIVE_LIST",
           "WavLMForAudioFrameClassification",
           "WavLMForCTC",
           "WavLMForSequenceClassification",
           "WavLMForXVector",
           "WavLMModel",
           "WavLMPreTrainedModel",
       ]

if TYPE_CHECKING:
       from .configuration_wavlm import WAVLM_PRETRAINED_CONFIG_ARCHIVE_MAP, WavLMConfig

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_wavlm import (
                  WAVLM_PRETRAINED_MODEL_ARCHIVE_LIST,
                  WavLMForAudioFrameClassification,
                  WavLMForCTC,
                  WavLMForSequenceClassification,
                  WavLMForXVector,
                  WavLMModel,
                  WavLMPreTrainedModel,
              )

else:
       import sys

       a		:       List[str]			     = _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)










from functools import lru_cache






@lru_cache
def 				lowerCamelCase__      (    __lowerCamelCase			:     int		):
  if num < 0:
    raise ValueError("""Number should not be negative."""		)

  return 1 if num in (0, 1) else num * factorial(num - 1		)


if __name__ == "__main__":
       import doctest

       doctest.testmod()


