
'''simple docstring'''






def    UpperCAmelCase							(  UpperCAmelCase__							:							str):
				if not all(x.isalpha() for x in string):
								raise ValueError('String must only contain alphabetic characters.')

				lowerCamelCase					:			List[Any]									= sorted(string.lower())
				return len(UpperCAmelCase__) == len(set(UpperCAmelCase__))


if __name__ == "__main__":
					A			      =      input('Enter a string ').strip()

					A			      =      is_isogram(input_str)
					print(f"""{input_str} is {"an" if isogram else "not an"} isogram.""")


'''simple docstring'''






from __future__ import annotations

import string
from itertools import cycle, product
from pathlib import Path

A			      =      (
    string.ascii_letters + string.digits + string.punctuation + string.whitespace
)
A			      =      [ord(letter) for letter in string.ascii_lowercase]
A			      =      {ord(char) for char in VALID_CHARS}

A			      =      ["the", "be", "to", "of", "and", "in", "that", "have"]





def    UpperCAmelCase							(  UpperCAmelCase__							:							list[int]       ,							UpperCAmelCase__							:							tuple[int, ...]):
				lowerCamelCase					:			str									= ""
				lowerCamelCase					:			int
				lowerCamelCase					:			int
				lowerCamelCase					:			int

				for keychar, cipherchar in zip(cycle(UpperCAmelCase__)       ,							UpperCAmelCase__):
								lowerCamelCase					:			Optional[Any]									= cipherchar ^ keychar
								if decodedchar not in VALID_INTS:
												return None
								decoded += chr(UpperCAmelCase__)

				return decoded





def    UpperCAmelCase							(  UpperCAmelCase__							:							list[int]):
				lowerCamelCase					:			list[str]									= []
				for key in product(UpperCAmelCase__       ,							repeat=3):
								lowerCamelCase					:			Dict									= try_key(UpperCAmelCase__       ,							UpperCAmelCase__)
								if encoded is not None:
												possibles.append(UpperCAmelCase__)
				return possibles





def    UpperCAmelCase							(  UpperCAmelCase__							:							list[str]       ,							UpperCAmelCase__							:							str):
				return [possible for possible in possibles if common_word in possible.lower()]





def    UpperCAmelCase							(  UpperCAmelCase__							:							str = "p059_cipher.txt"):
				lowerCamelCase					:			list[int]
				lowerCamelCase					:			list[str]
				lowerCamelCase					:			str
				lowerCamelCase					:			str
				lowerCamelCase					:			str									= Path(UpperCAmelCase__).parent.joinpath(UpperCAmelCase__).read_text(encoding='utf-8')

				lowerCamelCase					:			Tuple									= [int(UpperCAmelCase__) for number in data.strip().split(',')]

				lowerCamelCase					:			str									= filter_valid_chars(UpperCAmelCase__)
				for common_word in COMMON_WORDS:
								lowerCamelCase					:			List[str]									= filter_common_word(UpperCAmelCase__       ,							UpperCAmelCase__)
								if len(UpperCAmelCase__) == 1:
												break

				lowerCamelCase					:			Dict									= possibles[0]
				return sum(ord(UpperCAmelCase__) for char in decoded_text)


if __name__ == "__main__":
					print(f"""{solution() = }""")
