



'''simple docstring'''



from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


_lowercase       :						Union[str, Any]						={
    "configuration_layoutlm": ["LAYOUTLM_PRETRAINED_CONFIG_ARCHIVE_MAP", "LayoutLMConfig", "LayoutLMOnnxConfig"],
    "tokenization_layoutlm": ["LayoutLMTokenizer"],
}

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase       :						str						=["LayoutLMTokenizerFast"]

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase       :						List[str]						=[
				    "LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "LayoutLMForMaskedLM",
				    "LayoutLMForSequenceClassification",
				    "LayoutLMForTokenClassification",
				    "LayoutLMForQuestionAnswering",
				    "LayoutLMModel",
				    "LayoutLMPreTrainedModel",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase       :						List[Any]						=[
				    "TF_LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "TFLayoutLMForMaskedLM",
				    "TFLayoutLMForSequenceClassification",
				    "TFLayoutLMForTokenClassification",
				    "TFLayoutLMForQuestionAnswering",
				    "TFLayoutLMMainLayer",
				    "TFLayoutLMModel",
				    "TFLayoutLMPreTrainedModel",
				]


if TYPE_CHECKING:
				from .configuration_layoutlm import LAYOUTLM_PRETRAINED_CONFIG_ARCHIVE_MAP, LayoutLMConfig, LayoutLMOnnxConfig
				from .tokenization_layoutlm import LayoutLMTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_layoutlm_fast import LayoutLMTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_layoutlm import (
								    LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST,
								    LayoutLMForMaskedLM,
								    LayoutLMForQuestionAnswering,
								    LayoutLMForSequenceClassification,
								    LayoutLMForTokenClassification,
								    LayoutLMModel,
								    LayoutLMPreTrainedModel,
								)
				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_layoutlm import (
								    TF_LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFLayoutLMForMaskedLM,
								    TFLayoutLMForQuestionAnswering,
								    TFLayoutLMForSequenceClassification,
								    TFLayoutLMForTokenClassification,
								    TFLayoutLMMainLayer,
								    TFLayoutLMModel,
								    TFLayoutLMPreTrainedModel,
								)

else:
				import sys

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











from __future__ import annotations
def  __UpperCamelCase    (						snake_case      )    ->		bool:


   '''simple docstring'''







   __A    =  42
   __A    =  list(snake_case      )
   __A   ,		__A    =  _vector[:-1], int(_vector[-1]      )
   __A    =  [int(snake_case      ) for digit in __vector]

   vector.reverse()
   for i, digit in enumerate(snake_case      ):
      if i & 1 == 0:
         __A    =  digit * 2
         if doubled > 9:
            doubled -= 9
         check_digit += doubled
      else:
         check_digit += digit

   return check_digit % 1_0 == 0


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    assert is_luhn("""79927398713""")
    assert not is_luhn("""79927398714""")

