
'''simple docstring'''



from __future__ import annotations

from string import ascii_letters
def       lowerCAmelCase_		( SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_ = None  )   ->   str:




   """simple docstring"""
   _SCREAMING_SNAKE_CASE          = alphabet or ascii_letters

   # The final result string
   _SCREAMING_SNAKE_CASE          = """"""

   for character in input_string:
      if character not in alpha:
         # Append without encryption if character is not in the alphabet
         result += character
      else:
         # Get the index of the new key and make sure it isn't too large
         _SCREAMING_SNAKE_CASE          = (alpha.index(SCREAMING_SNAKE_CASE_  ) + key) % len(SCREAMING_SNAKE_CASE_  )

         # Append the encoded character to the alphabet
         result += alpha[new_key]

   return result
def       lowerCAmelCase_		( SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_ = None  )   ->   str:




   """simple docstring"""
   key *= -1

   return encrypt(SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_  )
def       lowerCAmelCase_		( SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_ = None  )   ->   dict[int, str]:




   """simple docstring"""
   _SCREAMING_SNAKE_CASE          = alphabet or ascii_letters

   # To store data on all the combinations
   _SCREAMING_SNAKE_CASE          = {}

   # Cycle through each combination
   for key in range(1			,					len(SCREAMING_SNAKE_CASE_  ) + 1  ):
      # Decrypt the message and store the result in the data
      _SCREAMING_SNAKE_CASE          = decrypt(SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_			,					SCREAMING_SNAKE_CASE_  )

   return brute_force_data


if __name__ == "__main__":
     while True:
          print(f"""\n{"-" * 10}\n Menu\n{"-" * 10}""")
          print(*["1.Encrypt", "2.Decrypt", "3.BruteForce", "4.Quit"], sep="\n")

          # get user input
          UpperCamelCase__					:						int											=     input("\nWhat would you like to do?: ").strip() or "4"

          # run functions based on what the user chose
          if choice not in ("1", "2", "3", "4"):
               print("Invalid choice, please enter a valid choice")
          elif choice == "1":
               UpperCamelCase__					:						Any											=     input("Please enter the string to be encrypted: ")
               UpperCamelCase__					:						Optional[Any]											=     int(input("Please enter off-set: ").strip())

               print(encrypt(input_string, key))
          elif choice == "2":
               UpperCamelCase__					:						List[Any]											=     input("Please enter the string to be decrypted: ")
               UpperCamelCase__					:						Any											=     int(input("Please enter off-set: ").strip())

               print(decrypt(input_string, key))
          elif choice == "3":
               UpperCamelCase__					:						List[Any]											=     input("Please enter the string to be decrypted: ")
               UpperCamelCase__					:						int											=     brute_force(input_string)

               for key, value in brute_force_data.items():
                    print(f"""Key: {key} | Message: {value}""")

          elif choice == "4":
               print("Goodbye.")
               break









"""simple docstring"""




import doctest

import projectq
from projectq.ops import H, Measure
def    __SCREAMING_SNAKE_CASE						(						lowercase__      ):
					"""simple docstring"""
					A			=					quantum_engine.allocate_qubit()
					H | qubit
					Measure | qubit
					return int(lowercase__      )


if __name__ == "__main__":
	doctest.testmod()

	# initialises a new quantum backend
	__A     :    Dict    =		projectq.MainEngine()

	# Generate a list of 10 random numbers
	__A     :    Any    =		[get_random_number(quantum_engine) for _ in range(10)]

	# Flushes the quantum engine from memory
	quantum_engine.flush()

	print('Random numbers', random_numbers_list)





