def     UpperCAmelCase						(   lowercase							,      lowercase							):







				"""simple docstring"""



				if not isinstance(lowercase							,      lowercase							):
								raise TypeError('''plaintext must be a string'''							)
				if not isinstance(lowercase							,      lowercase							):
								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
				__lowercase			      =							plaintext.lower()
				__lowercase			      =							key.lower()
				__lowercase			      =							0
				__lowercase			      =							0
				__lowercase			      =							''''''
				while plaintext_iterator < len(lowercase							):
								if (
								    ord(plaintext[plaintext_iterator]							) < 97
								    or ord(plaintext[plaintext_iterator]							) > 122
								):
												ciphertext += plaintext[plaintext_iterator]
												plaintext_iterator += 1
								elif ord(key[key_iterator]							) < 97 or ord(key[key_iterator]							) > 122:
												key_iterator += 1
								else:
												ciphertext += chr(
												    (
												        (ord(plaintext[plaintext_iterator]							) - 97 + ord(key[key_iterator]							))
												        - 97
												    )
												    % 26
												    + 97							)
												key_iterator += 1
												plaintext_iterator += 1
				return ciphertext





def     UpperCAmelCase						(   lowercase							,      lowercase							):







				"""simple docstring"""



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

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

				__lowercase			      =							key.lower()
				__lowercase			      =							0
				__lowercase			      =							0
				__lowercase			      =							''''''
				while ciphertext_iterator < len(lowercase							):
								if (
								    ord(ciphertext[ciphertext_iterator]							) < 97
								    or ord(ciphertext[ciphertext_iterator]							) > 122
								):
												plaintext += ciphertext[ciphertext_iterator]
								else:
												plaintext += chr(
												    (ord(ciphertext[ciphertext_iterator]							) - ord(key[key_iterator]							)) % 26
												    + 97							)
												key += chr(
												    (ord(ciphertext[ciphertext_iterator]							) - ord(key[key_iterator]							)) % 26
												    + 97							)
												key_iterator += 1
								ciphertext_iterator += 1
				return plaintext


if __name__ == "__main__":
		import doctest

		doctest.testmod()
		__a  :					int          =  int(input("""Type 1 to encrypt or 2 to decrypt:"""))
		if operation == 1:
				__a  :					List[str]          =  input("""Typeplaintext to be encrypted:\n""")
				__a  :					Union[str, Any]          =  input("""Type the key:\n""")
				print(encrypt(plaintext, key))
		elif operation == 2:
				__a  :					int          =  input("""Type the ciphertext to be decrypted:\n""")
				__a  :					Optional[Any]          =  input("""Type the key:\n""")
				print(decrypt(ciphertext, key))
		decrypt("""jsqqs avvwo""", """coffee""")
__a  :					Union[str, Any]          =  [[0, 1, 1], [0, 0, 1], [1, 0, 0]]




class        _UpperCamelCase				:


			"""simple docstring"""






			def __init__(       self				,       lowerCAmelCase__						)					-> List[str]:

							'''simple docstring'''


							__lowercase			      =							name
							__lowercase			      =							[]
							__lowercase			      =							[]





			def 	_SCREAMING_SNAKE_CASE      (       self				,       lowerCAmelCase__						)					-> Union[str, Any]:

							'''simple docstring'''


							self.inbound.append(lowerCAmelCase__						)





			def 	_SCREAMING_SNAKE_CASE      (       self				,       lowerCAmelCase__						)					-> Union[str, Any]:

							'''simple docstring'''


							self.outbound.append(lowerCAmelCase__						)





			def __repr__(       self						)					-> Tuple:

							'''simple docstring'''


							return F"<node={self.name} inbound={self.inbound} outbound={self.outbound}>"





def     UpperCAmelCase						(   lowercase							,      lowercase=3							,      lowercase=0.85							):







				"""simple docstring"""



				__lowercase			      =							{}
				for node in nodes:
								__lowercase			      =							1

				__lowercase			      =							{}
				for node in nodes:
								__lowercase			      =							len(node.outbound							)

				for i in range(lowercase							):
								print(F"======= Iteration {i + 1} ======="							)
								for _, node in enumerate(lowercase							):
												__lowercase			      =							(1 - d) + d * sum(
												    ranks[ib] / outbounds[ib] for ib in node.inbound							)
								print(lowercase							)





def     UpperCAmelCase						(   ):







				"""simple docstring"""



				__lowercase			      =							list(input('''Enter Names of the Nodes: '''							).split()							)

				__lowercase			      =							[Node(lowercase							) for name in names]

				for ri, row in enumerate(lowercase							):
								for ci, col in enumerate(lowercase							):
												if col == 1:
																nodes[ci].add_inbound(names[ri]							)
																nodes[ri].add_outbound(names[ci]							)

				print('''======= Nodes ======='''							)
				for node in nodes:
								print(lowercase							)

				page_rank(lowercase							)


if __name__ == "__main__":
		main()