"""simple docstring"""





from typing import TYPE_CHECKING

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


__A  =				{
    '''configuration_bridgetower''': [
        '''BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BridgeTowerConfig''',
        '''BridgeTowerTextConfig''',
        '''BridgeTowerVisionConfig''',
    ],
    '''processing_bridgetower''': ['''BridgeTowerProcessor'''],
}

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

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__A  =				[
				    '''BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''BridgeTowerForContrastiveLearning''',
				    '''BridgeTowerForImageAndTextRetrieval''',
				    '''BridgeTowerForMaskedLM''',
				    '''BridgeTowerModel''',
				    '''BridgeTowerPreTrainedModel''',
				]


if TYPE_CHECKING:
				from .configuration_bridgetower import (
				    BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP,
				    BridgeTowerConfig,
				    BridgeTowerTextConfig,
				    BridgeTowerVisionConfig,
				)
				from .processing_bridgetower import BridgeTowerProcessor

				try:
								if not is_vision_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .image_processing_bridgetower import BridgeTowerImageProcessor

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_bridgetower import (
								    BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST,
								    BridgeTowerForContrastiveLearning,
								    BridgeTowerForImageAndTextRetrieval,
								    BridgeTowerForMaskedLM,
								    BridgeTowerModel,
								    BridgeTowerPreTrainedModel,
								)


else:
				import sys

				__A  =				_LazyModule(__name__, globals()['''__file__'''], _import_structure)
"""simple docstring"""





from __future__ import annotations


def    lowercase_   (   _lowerCamelCase:	list[list[int]]      ) ->      bool:



							'''simple docstring'''

							__lowerCamelCase					:		str		   =     len(_lowerCamelCase      )
							# We need to create solution object to save path.
							__lowerCamelCase					:		List[Any]		   =     [[0 for _ in range(_lowerCamelCase      )] for _ in range(_lowerCamelCase      )]
							__lowerCamelCase					:		Dict		   =     run_maze(_lowerCamelCase						,   0						,   0						,   _lowerCamelCase      )
							if solved:
														print("\n".join(str(_lowerCamelCase      ) for row in solutions      )      )
							else:
														print("No solution exists!"      )
							return solved


def    lowercase_   (   _lowerCamelCase:	list[list[int]]						,   _lowerCamelCase:	int						,   _lowerCamelCase:	int						,   _lowerCamelCase:	list[list[int]]      ) ->      bool:



							'''simple docstring'''

							__lowerCamelCase					:		Dict		   =     len(_lowerCamelCase      )
							# Final check point.
							if i == j == (size - 1):
														__lowerCamelCase					:		Optional[Any]		   =     1
														return True

							__lowerCamelCase					:		int		   =     (not i < 0) and (not j < 0)  # Check lower bounds
							__lowerCamelCase					:		Union[str, Any]		   =     (i < size) and (j < size)  # Check upper bounds

							if lower_flag and upper_flag:
														# check for already visited and block points.
														__lowerCamelCase					:		List[Any]		   =     (not solutions[i][j]) and (not maze[i][j])
														if block_flag:
																					# check visited
																					__lowerCamelCase					:		Dict		   =     1

																					# check for directions
																					if (
																					    run_maze(_lowerCamelCase						,   i + 1						,   _lowerCamelCase						,   _lowerCamelCase      )
																					    or run_maze(_lowerCamelCase						,   _lowerCamelCase						,   j + 1						,   _lowerCamelCase      )
																					    or run_maze(_lowerCamelCase						,   i - 1						,   _lowerCamelCase						,   _lowerCamelCase      )
																					    or run_maze(_lowerCamelCase						,   _lowerCamelCase						,   j - 1						,   _lowerCamelCase      )
																					):
																												return True

																					__lowerCamelCase					:		List[str]		   =     0
																					return False
							return False


if __name__ == "__main__":
				import doctest

				doctest.testmod()