ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙfrom pathlib import Path from defence360agent.subsys.persistent_state import save_state from defence360agent.utils import CheckRunError, check_run from defence360agent.contracts.config import Packaging DOCTOR_CMD = ( "bash <(wget -qq -O - " "https://repo.imunify360.cloudlinux.com/defence360/imunify-doctor.sh)" ) async def _package_get_doctor_key(): dir_ = Packaging.DATADIR if not Path(dir_).is_dir(): dir_ = "/opt/imunify360/venv/share/imunify360" out = await check_run([Path(dir_, "scripts", "imunify-doctor.sh")]) key = out.decode().strip() return key async def _repo_get_doctor_key(): out = await check_run(DOCTOR_CMD, shell=True) key = out.decode().strip() if not key: raise ValueError("Doctor key is empty") return key async def get_doctor_key(): try: key = await _repo_get_doctor_key() except (CheckRunError, ValueError): key = await _package_get_doctor_key() save_state("doctor_key", {"doctor_key": key}) return key