






"""simple docstring"""


def    lowerCAmelCase							(       __UpperCamelCase						,			__UpperCamelCase					):




  """simple docstring"""







  if not isinstance(__UpperCamelCase						,			__UpperCamelCase					):
    raise TypeError('''plaintext must be a string'''					)
  if not isinstance(__UpperCamelCase						,			__UpperCamelCase					):
    raise TypeError('''key must be a string'''					)

  if not plaintext:
    raise ValueError('''plaintext is empty'''					)
  if not key:
    raise ValueError('''key is empty'''					)

  key += plaintext
  __A		     =					plaintext.lower()
  __A		     =					key.lower()
  __A		     =					0
  __A		     =					0
  __A		     =					''''''
  while plaintext_iterator < len(__UpperCamelCase					):
    if (
        ord(plaintext[plaintext_iterator]					) < 9_7
        or ord(plaintext[plaintext_iterator]					) > 1_2_2
    ):
      ciphertext += plaintext[plaintext_iterator]
      plaintext_iterator += 1
    elif ord(key[key_iterator]					) < 9_7 or ord(key[key_iterator]					) > 1_2_2:
      key_iterator += 1
    else:
      ciphertext += chr(
          (
              (ord(plaintext[plaintext_iterator]					) - 9_7 + ord(key[key_iterator]					))
              - 9_7
          )
          % 2_6
          + 9_7					)
      key_iterator += 1
      plaintext_iterator += 1
  return ciphertext



def    lowerCAmelCase							(       __UpperCamelCase						,			__UpperCamelCase					):




  """simple docstring"""







  if not isinstance(__UpperCamelCase						,			__UpperCamelCase					):
    raise TypeError('''ciphertext must be a string'''					)
  if not isinstance(__UpperCamelCase						,			__UpperCamelCase					):
    raise TypeError('''key must be a string'''					)

  if not ciphertext:
    raise ValueError('''ciphertext is empty'''					)
  if not key:
    raise ValueError('''key is empty'''					)

  __A		     =					key.lower()
  __A		     =					0
  __A		     =					0
  __A		     =					''''''
  while ciphertext_iterator < len(__UpperCamelCase					):
    if (
        ord(ciphertext[ciphertext_iterator]					) < 9_7
        or ord(ciphertext[ciphertext_iterator]					) > 1_2_2
    ):
      plaintext += ciphertext[ciphertext_iterator]
    else:
      plaintext += chr(
          (ord(ciphertext[ciphertext_iterator]					) - ord(key[key_iterator]					)) % 2_6
          + 9_7					)
      key += chr(
          (ord(ciphertext[ciphertext_iterator]					) - ord(key[key_iterator]					)) % 2_6
          + 9_7					)
      key_iterator += 1
    ciphertext_iterator += 1
  return plaintext


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       lowercase_								=	int(input('Type 1 to encrypt or 2 to decrypt:'))
       if operation == 1:
              lowercase_								=	input('Typeplaintext to be encrypted:\n')
              lowercase_								=	input('Type the key:\n')
              print(encrypt(plaintext, key))
       elif operation == 2:
              lowercase_								=	input('Type the ciphertext to be decrypted:\n')
              lowercase_								=	input('Type the key:\n')
              print(decrypt(ciphertext, key))
       decrypt('jsqqs avvwo', 'coffee')





class     snake_case_			:






   def __init__( self							:	Optional[int]      ,		lowercase_							:	Optional[int]=None    )   ->		Optional[int]:
       lowercase__					:  List[Any]          =							data
       lowercase__					:  Any          =							None







   def __repr__( self							:	Optional[Any]    )   ->		int:
       lowercase__					:  Optional[int]          =							""
       lowercase__					:  Any          =							self
       while temp:
           string_rep += F'''<{temp.data}> ---> '''
           lowercase__					:  List[Any]          =							temp.next
       string_rep += "<END>"
       return string_rep



def      lowercase_							(     _lowerCamelCase				:			List[Any]):

    # if elements_list is empty
    if not elements_list:
        raise Exception("The Elements List is empty")

    # Set first element as Head
    lowercase__					:  List[str]          =							Node(elements_list[0])
    lowercase__					:  Tuple          =							head
    # Loop through elements from position 1
    for data in elements_list[1:]:
        lowercase__					:  Tuple          =							Node(_lowerCamelCase)
        lowercase__					:  Union[str, Any]          =							current.next
    return head


UpperCamelCase    				=		[1, 3, 5, 32, 44, 12, 43]
print(f"List: {list_data}")
print('''Creating Linked List from List.''')
UpperCamelCase    				=		make_linked_list(list_data)
print('''Linked List:''')

print(linked_list)



