






"""simple docstring"""






def 					_A			(__a    ,				__a							) ->       Optional[int]:
    """simple docstring"""






    SCREAMING_SNAKE_CASE_      :  List[Any]    						=		[1]
    for i in range(2    ,				__a							):
        factorials.append(factorials[-1] * i							)
    assert 0 <= k < factorials[-1] * n, "k out of bounds"

    SCREAMING_SNAKE_CASE_      :  Tuple    						=		[]
    SCREAMING_SNAKE_CASE_      :  Dict    						=		list(range(__a							)							)

    # Find permutation
    while factorials:
        SCREAMING_SNAKE_CASE_      :  List[str]    						=		factorials.pop()
        SCREAMING_SNAKE_CASE_						,			SCREAMING_SNAKE_CASE_      :  Union[str, Any]    						=		divmod(__a    ,				__a							)
        permutation.append(elements[number]							)
        elements.remove(elements[number]							)
    permutation.append(elements[0]							)

    return permutation


if __name__ == "__main__":
  import doctest

  doctest.testmod()






"""simple docstring"""




from typing import TYPE_CHECKING

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


__UpperCamelCase						=      {
    '''configuration_blip''': [
        '''BLIP_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BlipConfig''',
        '''BlipTextConfig''',
        '''BlipVisionConfig''',
    ],
    '''processing_blip''': ['''BlipProcessor'''],
}

try:
	if not is_vision_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	__UpperCamelCase						=      ['''BlipImageProcessor''']


try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	__UpperCamelCase						=      [
	    '''BLIP_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''BlipModel''',
	    '''BlipPreTrainedModel''',
	    '''BlipForConditionalGeneration''',
	    '''BlipForQuestionAnswering''',
	    '''BlipVisionModel''',
	    '''BlipTextModel''',
	    '''BlipForImageTextRetrieval''',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	__UpperCamelCase						=      [
	    '''TF_BLIP_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''TFBlipModel''',
	    '''TFBlipPreTrainedModel''',
	    '''TFBlipForConditionalGeneration''',
	    '''TFBlipForQuestionAnswering''',
	    '''TFBlipVisionModel''',
	    '''TFBlipTextModel''',
	    '''TFBlipForImageTextRetrieval''',
	]

if TYPE_CHECKING:
	from .configuration_blip import BLIP_PRETRAINED_CONFIG_ARCHIVE_MAP, BlipConfig, BlipTextConfig, BlipVisionConfig
	from .processing_blip import BlipProcessor

	try:
		if not is_vision_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .image_processing_blip import BlipImageProcessor

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_blip import (
		    BLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
		    BlipForConditionalGeneration,
		    BlipForImageTextRetrieval,
		    BlipForQuestionAnswering,
		    BlipModel,
		    BlipPreTrainedModel,
		    BlipTextModel,
		    BlipVisionModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_blip import (
		    TF_BLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFBlipForConditionalGeneration,
		    TFBlipForImageTextRetrieval,
		    TFBlipForQuestionAnswering,
		    TFBlipModel,
		    TFBlipPreTrainedModel,
		    TFBlipTextModel,
		    TFBlipVisionModel,
		)

else:
	import sys

	__UpperCamelCase						=      _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)


