



from typing import TYPE_CHECKING

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


snake_case_    					=	{
    """configuration_bert""": ["""BERT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """BertConfig""", """BertOnnxConfig"""],
    """tokenization_bert""": ["""BasicTokenizer""", """BertTokenizer""", """WordpieceTokenizer"""],
}

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				snake_case_    					=	["""BertTokenizerFast"""]

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				snake_case_    					=	[
				    """BERT_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """BertForMaskedLM""",
				    """BertForMultipleChoice""",
				    """BertForNextSentencePrediction""",
				    """BertForPreTraining""",
				    """BertForQuestionAnswering""",
				    """BertForSequenceClassification""",
				    """BertForTokenClassification""",
				    """BertLayer""",
				    """BertLMHeadModel""",
				    """BertModel""",
				    """BertPreTrainedModel""",
				    """load_tf_weights_in_bert""",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				snake_case_    					=	[
				    """TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """TFBertEmbeddings""",
				    """TFBertForMaskedLM""",
				    """TFBertForMultipleChoice""",
				    """TFBertForNextSentencePrediction""",
				    """TFBertForPreTraining""",
				    """TFBertForQuestionAnswering""",
				    """TFBertForSequenceClassification""",
				    """TFBertForTokenClassification""",
				    """TFBertLMHeadModel""",
				    """TFBertMainLayer""",
				    """TFBertModel""",
				    """TFBertPreTrainedModel""",
				]
try:
				if not is_tensorflow_text_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				snake_case_    					=	["""TFBertTokenizer"""]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				snake_case_    					=	[
				    """FlaxBertForCausalLM""",
				    """FlaxBertForMaskedLM""",
				    """FlaxBertForMultipleChoice""",
				    """FlaxBertForNextSentencePrediction""",
				    """FlaxBertForPreTraining""",
				    """FlaxBertForQuestionAnswering""",
				    """FlaxBertForSequenceClassification""",
				    """FlaxBertForTokenClassification""",
				    """FlaxBertModel""",
				    """FlaxBertPreTrainedModel""",
				]

if TYPE_CHECKING:
				from .configuration_bert import BERT_PRETRAINED_CONFIG_ARCHIVE_MAP, BertConfig, BertOnnxConfig
				from .tokenization_bert import BasicTokenizer, BertTokenizer, WordpieceTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_bert_fast import BertTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_bert import (
								    BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    BertForMaskedLM,
								    BertForMultipleChoice,
								    BertForNextSentencePrediction,
								    BertForPreTraining,
								    BertForQuestionAnswering,
								    BertForSequenceClassification,
								    BertForTokenClassification,
								    BertLayer,
								    BertLMHeadModel,
								    BertModel,
								    BertPreTrainedModel,
								    load_tf_weights_in_bert,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_bert import (
								    TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFBertEmbeddings,
								    TFBertForMaskedLM,
								    TFBertForMultipleChoice,
								    TFBertForNextSentencePrediction,
								    TFBertForPreTraining,
								    TFBertForQuestionAnswering,
								    TFBertForSequenceClassification,
								    TFBertForTokenClassification,
								    TFBertLMHeadModel,
								    TFBertMainLayer,
								    TFBertModel,
								    TFBertPreTrainedModel,
								)

				try:
								if not is_tensorflow_text_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_bert_tf import TFBertTokenizer

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_flax_bert import (
								    FlaxBertForCausalLM,
								    FlaxBertForMaskedLM,
								    FlaxBertForMultipleChoice,
								    FlaxBertForNextSentencePrediction,
								    FlaxBertForPreTraining,
								    FlaxBertForQuestionAnswering,
								    FlaxBertForSequenceClassification,
								    FlaxBertForTokenClassification,
								    FlaxBertModel,
								    FlaxBertPreTrainedModel,
								)

else:
				import sys

				snake_case_    					=	_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)










"""simple docstring"""


def 			_lowerCAmelCase				(       lowercase_						):

						if not isinstance(lowercase_		,     lowercase_						):
												UpperCAmelCase					=			F"""Input value of [number={number}] must be an integer"""
												raise TypeError(lowercase_						)

						if number < 1:
												UpperCAmelCase					=			F"""Input value of [number={number}] must be > 0"""
												raise ValueError(lowercase_						)

						UpperCAmelCase					=			1

						for i in range(1		,     lowercase_						):
												current_number *= 4 * i - 2
												current_number //= i + 1

						return current_number


if __name__ == "__main__":
				import doctest

				doctest.testmod()





