





def       UpperCAmelCase							(     _lowerCamelCase      :  int			,   _lowerCamelCase      :  int     ):





						'''simple docstring'''


						if a < 0 or b < 0:
												raise ValueError("the value of both inputs must be positive"     )

						SCREAMING_SNAKE_CASE__     :				Optional[int]   =					str(bin(_lowerCamelCase     )     )[2:]  # remove the leading "0b"
						SCREAMING_SNAKE_CASE__     :				Optional[int]   =					str(bin(_lowerCamelCase     )     )[2:]  # remove the leading "0b"

						SCREAMING_SNAKE_CASE__     :				Optional[int]   =					max(len(_lowerCamelCase     )			,   len(_lowerCamelCase     )     )

						return "0b" + "".join(
						    str(int(char_a != char_b     )     )
						    for char_a, char_b in zip(a_binary.zfill(_lowerCamelCase     )			,   b_binary.zfill(_lowerCamelCase     )     )     )


if __name__ == "__main__":
				import doctest

				doctest.testmod()






from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


__lowercase       :str       =  {
    "configuration_upernet": ["UperNetConfig"],
}

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__lowercase       :Union[str, Any]       =  [
				    "UperNetForSemanticSegmentation",
				    "UperNetPreTrainedModel",
				]


if TYPE_CHECKING:
				from .configuration_upernet import UperNetConfig

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_upernet import UperNetForSemanticSegmentation, UperNetPreTrainedModel


else:
				import sys

				__lowercase       :str       =  _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)