




'''simple docstring'''







from __future__ import annotations



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase							):
     snake_case   ,		snake_case   ,		snake_case :			Tuple					   = """""", """""", """"""
     snake_case :			Union[str, Any]					   = []

     for character in message_part:
          tmp.append(character_to_number[character]							)

     for each in tmp:
          one += each[0]
          two += each[1]
          three += each[2]

     return one + two + three



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase							):
     snake_case   ,		snake_case :			str					   = """""", """"""
     snake_case :			Dict					   = []

     for character in message_part:
          this_part += character_to_number[character]

     for digit in this_part:
          tmp += digit
          if len(__lowercase							) == len(__lowercase							):
               result.append(__lowercase							)
               snake_case :			List[Any]					   = """"""

     return result[0], result[1], result[2]



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase							):
     # Validate message and alphabet, set to upper and remove spaces
     snake_case :			int					   = alphabet.replace(""" """    ,      """"""							).upper()
     snake_case :			Optional[Any]					   = message.replace(""" """    ,      """"""							).upper()

     # Check length and characters
     if len(__lowercase							) != 27:
          raise KeyError("""Length of alphabet has to be 27."""							)
     for each in message:
          if each not in alphabet:
               raise ValueError("""Each message character has to be included in alphabet!"""							)

    # Generate dictionares
     snake_case :			Optional[int]					   = (
         """111""",
         """112""",
         """113""",
         """121""",
         """122""",
         """123""",
         """131""",
         """132""",
         """133""",
         """211""",
         """212""",
         """213""",
         """221""",
         """222""",
         """223""",
         """231""",
         """232""",
         """233""",
         """311""",
         """312""",
         """313""",
         """321""",
         """322""",
         """323""",
         """331""",
         """332""",
         """333""",
     )
     snake_case :			List[str]					   = {}
     snake_case :			Optional[Any]					   = {}
     for letter, number in zip(__lowercase    ,      __lowercase							):
          snake_case :			Union[str, Any]					   = number
          snake_case :			Optional[Any]					   = letter

     return message, alphabet, character_to_number, number_to_character



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ."    ,      __lowercase = 5							):
     snake_case   ,		snake_case   ,		snake_case   ,		snake_case :			Any					   = __prepare(
         __lowercase    ,      __lowercase							)
     snake_case   ,		snake_case :			Any					   = """""", """"""

     for i in range(0    ,      len(__lowercase							) + 1    ,      __lowercase							):
          encrypted_numeric += __encrypt_part(
              message[i : i + period]    ,      __lowercase							)

     for i in range(0    ,      len(__lowercase							)    ,      3							):
          encrypted += number_to_character[encrypted_numeric[i : i + 3]]

     return encrypted



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ."    ,      __lowercase = 5							):
     snake_case   ,		snake_case   ,		snake_case   ,		snake_case :			Union[str, Any]					   = __prepare(
         __lowercase    ,      __lowercase							)
     snake_case :			str					   = []
     snake_case :			Union[str, Any]					   = """"""

     for i in range(0    ,      len(__lowercase							) + 1    ,      __lowercase							):
          snake_case   ,		snake_case   ,		snake_case :			Optional[int]					   = __decrypt_part(message[i : i + period]    ,      __lowercase							)

          for j in range(0    ,      len(__lowercase							)							):
               decrypted_numeric.append(a[j] + b[j] + c[j]							)

     for each in decrypted_numeric:
          decrypted += number_to_character[each]

     return decrypted


if __name__ == "__main__":
      lowercase			:      List[str]			=					"""DEFEND THE EAST WALL OF THE CASTLE."""
      lowercase			:      List[Any]			=					encrypt_message(msg, """EPSDUCVWYM.ZLKXNBTFGORIJHAQ""")
      lowercase			:      Any			=					decrypt_message(encrypted, """EPSDUCVWYM.ZLKXNBTFGORIJHAQ""")
      print(F"""Encrypted: {encrypted}\nDecrypted: {decrypted}""")









'''simple docstring'''







def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) * 9 / 5) + 32    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round(float(__lowercase							) + 273.15    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) * 9 / 5) + 491.67    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) - 32) * 5 / 9    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round(((float(__lowercase							) - 32) * 5 / 9) + 273.15    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round(float(__lowercase							) + 459.67    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round(float(__lowercase							) - 273.15    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round(((float(__lowercase							) - 273.15) * 9 / 5) + 32    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) * 9 / 5)    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) - 491.67) * 5 / 9    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round(float(__lowercase							) - 459.67    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) * 5 / 9)    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) * 1.25 + 273.15)    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) * 2.25 + 32)    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) * 1.25)    ,      __lowercase							)



def 					lowerCamelCase__							(			__lowercase    ,      __lowercase = 2							):
     return round((float(__lowercase							) * 2.25 + 32 + 459.67)    ,      __lowercase							)


if __name__ == "__main__":
      import doctest

      doctest.testmod()



