
'''simple docstring'''


from typing import TYPE_CHECKING

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


__lowercase							:      str		 =   {
    "configuration_xlm_roberta": [
        "XLM_ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "XLMRobertaConfig",
        "XLMRobertaOnnxConfig",
    ],
}

try:
					if not is_sentencepiece_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					__lowercase							:      Dict		 =   ["XLMRobertaTokenizer"]

try:
					if not is_tokenizers_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					__lowercase							:      Optional[Any]		 =   ["XLMRobertaTokenizerFast"]

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					__lowercase							:      Optional[Any]		 =   [
					    "XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "XLMRobertaForCausalLM",
					    "XLMRobertaForMaskedLM",
					    "XLMRobertaForMultipleChoice",
					    "XLMRobertaForQuestionAnswering",
					    "XLMRobertaForSequenceClassification",
					    "XLMRobertaForTokenClassification",
					    "XLMRobertaModel",
					    "XLMRobertaPreTrainedModel",
					]

try:
					if not is_tf_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					__lowercase							:      List[Any]		 =   [
					    "TF_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "TFXLMRobertaForCausalLM",
					    "TFXLMRobertaForMaskedLM",
					    "TFXLMRobertaForMultipleChoice",
					    "TFXLMRobertaForQuestionAnswering",
					    "TFXLMRobertaForSequenceClassification",
					    "TFXLMRobertaForTokenClassification",
					    "TFXLMRobertaModel",
					    "TFXLMRobertaPreTrainedModel",
					]

try:
					if not is_flax_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					__lowercase							:      Union[str, Any]		 =   [
					    "FLAX_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "FlaxXLMRobertaForMaskedLM",
					    "FlaxXLMRobertaForCausalLM",
					    "FlaxXLMRobertaForMultipleChoice",
					    "FlaxXLMRobertaForQuestionAnswering",
					    "FlaxXLMRobertaForSequenceClassification",
					    "FlaxXLMRobertaForTokenClassification",
					    "FlaxXLMRobertaModel",
					    "FlaxXLMRobertaPreTrainedModel",
					]

if TYPE_CHECKING:
					from .configuration_xlm_roberta import (
					    XLM_ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP,
					    XLMRobertaConfig,
					    XLMRobertaOnnxConfig,
					)

					try:
										if not is_sentencepiece_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .tokenization_xlm_roberta import XLMRobertaTokenizer

					try:
										if not is_tokenizers_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .tokenization_xlm_roberta_fast import XLMRobertaTokenizerFast

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_xlm_roberta import (
										    XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
										    XLMRobertaForCausalLM,
										    XLMRobertaForMaskedLM,
										    XLMRobertaForMultipleChoice,
										    XLMRobertaForQuestionAnswering,
										    XLMRobertaForSequenceClassification,
										    XLMRobertaForTokenClassification,
										    XLMRobertaModel,
										    XLMRobertaPreTrainedModel,
										)

					try:
										if not is_tf_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_tf_xlm_roberta import (
										    TF_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
										    TFXLMRobertaForCausalLM,
										    TFXLMRobertaForMaskedLM,
										    TFXLMRobertaForMultipleChoice,
										    TFXLMRobertaForQuestionAnswering,
										    TFXLMRobertaForSequenceClassification,
										    TFXLMRobertaForTokenClassification,
										    TFXLMRobertaModel,
										    TFXLMRobertaPreTrainedModel,
										)

					try:
										if not is_flax_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_flax_xlm_roberta import (
										    FLAX_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
										    FlaxXLMRobertaForCausalLM,
										    FlaxXLMRobertaForMaskedLM,
										    FlaxXLMRobertaForMultipleChoice,
										    FlaxXLMRobertaForQuestionAnswering,
										    FlaxXLMRobertaForSequenceClassification,
										    FlaxXLMRobertaForTokenClassification,
										    FlaxXLMRobertaModel,
										    FlaxXLMRobertaPreTrainedModel,
										)

else:
					import sys

					__lowercase							:      int		 =   _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)








def    A						(__A   :    list   ,				__A   :    int   ,				__A   :    int = 0   ,				__A   :    int = 0       )   ->      int:







     """simple docstring"""


     UpperCAmelCase_          =							right or len(__A       ) - 1
     if left > right:
          return -1
     elif list_data[left] == key:
          return left
     elif list_data[right] == key:
          return right
     else:
          return search(__A   ,				__A   ,				left + 1   ,				right - 1       )


if __name__ == "__main__":
    import doctest

    doctest.testmod()






