
from functools import lru_cache




@lru_cache
def     a						(							snake_case__: int ):


				'''simple docstring'''
				if not isinstance(snake_case__						,       snake_case__ ):
								raise TypeError('''k must be an integer.''' )
				if k < 0:
								raise ValueError('''k integer must be greater or equal to zero.''' )
				if k == 0:
								return 0
				elif k == 1:
								return 1
				else:
								return fibonacci(k - 1 ) + fibonacci(k - 2 )




def     a						(							snake_case__: list						,       snake_case__: int ):


				'''simple docstring'''
				lowercase_					  = len(snake_case__ )
				# Find m such that F_m >= n where F_i is the i_th fibonacci number.
				lowercase_					  = 0
				while True:
								if fibonacci(snake_case__ ) >= len_list:
												lowercase_					  = i
												break
								i += 1
				lowercase_					  = 0
				while fibb_k > 0:
								lowercase_					  = min(
								    offset + fibonacci(fibb_k - 1 )						,       len_list - 1 )  # Prevent out of range
								lowercase_					  = arr[index_k]
								if item_k_1 == val:
												return index_k
								elif val < item_k_1:
												fibb_k -= 1
								elif val > item_k_1:
												offset += fibonacci(fibb_k - 1 )
												fibb_k -= 2
				else:
								return -1


if __name__ == "__main__":
						import doctest

						doctest.testmod()






from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


__a        = {
    'configuration_donut_swin': ['DONUT_SWIN_PRETRAINED_CONFIG_ARCHIVE_MAP', 'DonutSwinConfig'],
    'processing_donut': ['DonutProcessor'],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__a        = [
						    'DONUT_SWIN_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'DonutSwinModel',
						    'DonutSwinPreTrainedModel',
						]

try:
						if not is_vision_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__a        = ['DonutFeatureExtractor']
						__a        = ['DonutImageProcessor']


if TYPE_CHECKING:
						from .configuration_donut_swin import DONUT_SWIN_PRETRAINED_CONFIG_ARCHIVE_MAP, DonutSwinConfig
						from .processing_donut import DonutProcessor

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_donut_swin import (
												    DONUT_SWIN_PRETRAINED_MODEL_ARCHIVE_LIST,
												    DonutSwinModel,
												    DonutSwinPreTrainedModel,
												)

						try:
												if not is_vision_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .feature_extraction_donut import DonutFeatureExtractor
												from .image_processing_donut import DonutImageProcessor

else:
						import sys

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




