a „oeēć @sŲddlZddlZddlZddlZdd„Zdd„Ze ”Ze ed”dZ e  e ”e  e ”e de ƒe e d”dZ e d e ƒee d ƒZe d d ”e ”ee d d ƒZe dd ”e ”ee dd ƒZe dd ”e ”e e ”e e d”dZe deƒeedƒZe e d”Zz*e ee eefe”We e”e ”ne e”e ”0e e d”dZe deƒeedƒZe eej”Zz*e eeeefe”We e”e ”ne e”e ”0dS)éNcCs|\}}}| |”tjS©N)ŚwriteŚwinerrorŚ ERROR_SUCCESS)Z input_bufferŚdataŚbuflenZfnameinŚfnameoutŚf©r śAC:\Program Files\Certbot\pkgs\win32\Demos\OpenEncryptedFileRaw.pyŚ ReadCallbacks  r cCs2|\}}}| |”}t|ƒ}||d|…<tj|fSr)ŚreadŚlenrr)Z output_bufferrrZ fnamebackuprr Z file_dataZ output_lenr r r Ś WriteCallbacks    rZoefzDestination dir:Śrefz orig file:Śwzxxxxxxxxxxxxxxxx i€z :stream_yzyyyyyyyyyyyyyyyy z :stream_zzzzzzzzzzzzzzzzzz Zbefz backup file:ŚwbZwefzrestored file:Śrb)ŚosZwin32apiZ win32filerr rZ GetTempPathZtmp_dirZGetTempFileNameZdst_dirŚremoveŚmkdirŚprintŚfnameŚopenr rŚcloseZ EncryptFileZ bkup_fnameZOpenEncryptedFileRawZctxtZReadEncryptedFileRawZCloseEncryptedFileRawZ dst_fnameZCREATE_FOR_IMPORTZctxtoutZWriteEncryptedFileRawr r r r ŚsT            ’      ’