"""simple docstring"""




def 							_UpperCAmelCase		(       lowerCamelCase__			,  lowerCamelCase__			,  lowerCamelCase__			,  lowerCamelCase__     ):





		"""simple docstring"""




		A   ,					A        =   len(__a     ), len(grid[0]     )
		if (
		    min(__a			,  __a     ) < 0
		    or row == row_length
		    or col == col_length
		    or (row, col) in visit
		    or grid[row][col] == 1
		):
				return 0
		if row == row_length - 1 and col == col_length - 1:
				return 1

		visit.add((row, col)     )

		A        =   0
		count += depth_first_search(__a			,  row + 1			,  __a			,  __a     )
		count += depth_first_search(__a			,  row - 1			,  __a			,  __a     )
		count += depth_first_search(__a			,  __a			,  col + 1			,  __a     )
		count += depth_first_search(__a			,  __a			,  col - 1			,  __a     )

		visit.remove((row, col)     )
		return count


if __name__ == "__main__":
			import doctest

			doctest.testmod()





"""simple docstring"""




import argparse

import torch

from transformers import MobileBertConfig, MobileBertForPreTraining, load_tf_weights_in_mobilebert
from transformers.utils import logging


logging.set_verbosity_info()







def 							_UpperCAmelCase		(       lowerCamelCase__			,  lowerCamelCase__			,  lowerCamelCase__     ):





		"""simple docstring"""




		lowerCAmelCase__        =   MobileBertConfig.from_json_file(lowerCamelCase__     )
		print(f"""Building PyTorch model from configuration: {config}"""     )
		lowerCAmelCase__        =   MobileBertForPreTraining(lowerCamelCase__     )
		# Load weights from tf checkpoint
		lowerCAmelCase__        =   load_tf_weights_in_mobilebert(lowerCamelCase__			,  lowerCamelCase__			,  lowerCamelCase__     )
		# Save pytorch-model
		print(f"""Save PyTorch model to {pytorch_dump_path}"""     )
		torch.save(model.state_dict()			,  lowerCamelCase__     )


if __name__ == "__main__":
			__lowerCAmelCase    :							List[str]													=						argparse.ArgumentParser()
			# Required parameters
			parser.add_argument(
			    "--tf_checkpoint_path", default=None, type=str, required=True, help="Path to the TensorFlow checkpoint path."
			)
			parser.add_argument(
			    "--mobilebert_config_file",
			    default=None,
			    type=str,
			    required=True,
			    help=(
			        "The config json file corresponding to the pre-trained MobileBERT model. \n"
			        "This specifies the model architecture."
			    ),
			)
			parser.add_argument(
			    "--pytorch_dump_path", default=None, type=str, required=True, help="Path to the output PyTorch model."
			)
			__lowerCAmelCase    :							Optional[int]													=						parser.parse_args()
			convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.mobilebert_config_file, args.pytorch_dump_path)




