o ?Og9@s ddlZddlZddlZddlZddlZddlZejdeddgdZGddde Z dZ dZ d Z d Zd ZGd d d ZddZGdddZejddZGdddZGdddZGdddZddZGdddZGdddZGd d!d!Zd"d#ZdS)$Nzthe binhex module is deprecated) stacklevel)binhexhexbinErrorc@s eZdZdS)rN)__name__ __module__ __qualname__r r -/opt/alt/python310/lib64/python3.10/binhex.pyr%sri@c@seZdZddZdS)FInfocCsd|_d|_d|_dS)Nz????r)TypeCreatorFlagsselfr r r __init__6s zFInfo.__init__N)rrr rr r r r r5s rcCst}t|d}|d}d|vrd|_|dd|}Wdn1s*wYtj |\}}| ddd}|||dfS) NrbirZTEXTr:-r ) rioopenreadrseektellospathsplitreplace)namefinfofpdataZdsizedirfiler r r getfileinfo;s    r(c@s,eZdZddZddZddZddZd S) openrsrccGdSNr rargsr r r rIzopenrsrc.__init__cGsdSNr r,r r r rLr.z openrsrc.readcGr*r+r r,r r r writeOr.zopenrsrc.writecCr*r+r rr r r closeRr.zopenrsrc.closeN)rrr rrr1r2r r r r r)Hs  r)ccsDttddtdVWddS1swYdS)Nignore)warningscatch_warningsfilterwarningsDeprecationWarningr r r r _ignore_deprecation_warningXs  "r9c@.eZdZ ddZddZddZddZd S) _HqxcoderenginecCs ||_d|_d|_td|_dS)Nr0r )ofpr%hqxdataLINELENlinelenrr<r r r rbsz_Hqxcoderengine.__init__cCs|j||_t|j}|dd}|jd|}|j|d|_|s$dSt|jt||_Wdn1s;wY|ddS)Nr)r%lenr9r=binasciib2a_hqx_flush)rr%ZdatalenZtodor r r r1hs   z_Hqxcoderengine.writecCsd}|t|j|jkr-||j}|j|j||dt|_|}|t|j|jks |j|d|_|rB|j|jddSdS)Nr s: )rBr=r?r<r1r>)rZforcefirstZlastr r r rEts z_Hqxcoderengine._flushcCs\|jr t|jt|j|_Wdn1swY|d|j|`dS)Nr )r%r9r=rCrDrEr<r2rr r r r2s  z_Hqxcoderengine.closeN)rrr rr1rEr2r r r r r;_s  r;c@&eZdZ ddZddZddZdS)_RlecoderenginecC||_d|_dSr/)r<r%r@r r r r z_Rlecoderengine.__init__cCsf|j||_t|jtkrdStt|j}Wdn1s#wY|j|d|_dSr/)r%rBREASONABLY_LARGEr9rC rlecode_hqxr<r1)rr%rledatar r r r1s   z_Rlecoderengine.writecCsV|jr"tt|j}Wdn1swY|j||j|`dSr+)r%r9rCrMr<r1r2)rrNr r r r2s  z_Rlecoderengine.closeN)rrr rr1r2r r r r rIs  rIc@LeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)BinHexc Cs|\}}}}d}t|tr|}t|d}d}z*|dt|} t| |_d|_|dur0t }||_ ||_ | ||t |_WdS|rK|)NFwbTs0(This file must be converted with BinHex 4.0) :r) isinstancestrrrr1r;rIr<crcrdlenrlen _writeinfo _DID_HEADERstater2) rZname_finfo_dlen_rlenr<r"r#rUrVZclose_on_errorZofnameZhqxerr r r rs*       zBinHex.__init__c Cst|}|dkr tdt|g|dd}|j|j}}t|tr)|d}t|tr3|d}||}t d|j }t d|j |j } |||| } | | |dS)N?zFilename too longzlatin-1>hz>ii)rBrbytesencoderrrRrSstructpackrrUrV_write _writecrc) rr"r#nldtpZcrZd2Zd3Zd4infor r r rWs      zBinHex._writeinfocCs t||j|_|j|dSr+)rCcrc_hqxrTr<r1rr%r r r rasz BinHex._writecCs4|jdkrd}nd}|jt||jd|_dS)Nrr\z>H)rTr<r1r_r`)rZfmtr r r rbs  zBinHex._writecrccCs0|jtkr td|jt||_||dS)NzWriting data at the wrong time)rYrXrrUrBrarhr r r r1s z BinHex.writecCs,|jdkr td|jf|t|_dS)NrzIncorrect data size, diff=%r)rUrrVrb _DID_DATArYrr r r close_datas  zBinHex.close_datacCsB|jtkr ||jtkrtd|jt||_||dS)Nz'Writing resource data at the wrong time)rYrirjrrVrBrarhr r r write_rsrcs  zBinHex.write_rsrccCs|jdurdSz2|jtkr||jtkrtd|jdkr'td|jf|Wd|_|j}|`|dSd|_|j}|`|w)NzClose at the wrong timerz$Incorrect resource-datasize, diff=%r)rYrirjrrVrbr<r2r@r r r r2s$       z BinHex.closeN) rrr rrWrarbr1rjrkr2r r r r rPs  rPcCs t|}t||}t|d} |d}|sn||q|Wdn1s.wYt|d} |d}|sAn||q9| | dS)NrT) r(rPrrrr1rjr)rkr2)inpoutr#r<ifprdr r r rs&        rc@rH)_HqxdecoderenginecCrJ)Nr)roeofrror r r rrKz_Hqxdecoderengine.__init__cCs d}|}|dkrm|jr|S|ddd}|j|} ztt|\}|_Wdn1s4wYWntjyDYnw|jd}|sQtd||}q||}|t|}|si|jsitd|dks |S) Nr0rrrATr zPremature EOF on binhex file) rqrorr9rCZa2b_hqxZ IncompleterrB)rZtotalwtdZdecdatawtdr%Z decdatacurnewdatar r r rs6     z_Hqxdecoderengine.readcC|jdSr+ror2rr r r r2:z_Hqxdecoderengine.closeN)rrr rrr2r r r r rps  !rpc@r:) _RledecoderenginecCs||_d|_d|_d|_dS)Nr0r)ro pre_buffer post_bufferrqrrr r r r@s z_Rledecoderengine.__init__cCsD|t|jkr||t|j|jd|}|j|d|_|Sr+)rBr{_fill)rrtrvr r r rFs z_Rledecoderengine.readcCs@|j|j|d|_|jjr2t|jt|j|_Wdn1s(wYd|_dSt|j}|jddt dt krI|d}n,|jddt krW|d}n|jddt dkrg|d}n|jddt krqn|d }t|jt|jd||_Wdn1swY|j|d|_dS) Nrsr0r[rArr ) rzrorrqr9r{rCZ rledecode_hqxrBRUNCHAR)rrtZmarkr r r r|Ms2     z_Rledecoderengine._fillcCrvr+rwrr r r r2rrxz_Rledecoderengine.closeN)rrr rrr|r2r r r r ry=s  %ryc@rO)HexBincCsht|tr t|d} |d}|std|dkrq |dkr!nq t|}t||_d|_ | dS)NrTr zNo binhex data foundrF:r) rRrSrrrrrpryrorT _readheader)rroZchZhqxifpr r r rvs     zHexBin.__init__cCs |j|}t||j|_|Sr+)rorrCrgrT)rrBr%r r r _reads z HexBin._readcCsNtd|jddd@}|jd@|_||jkr"td|j|fd|_dS)Nr\rrizCRC error, computed %x, read %x)r_unpackrorrTr)rZfilecrcr r r _checkcrcs   zHexBin._checkcrccCs|d}|t|}|d}||dd}|dd}td|ddd}td|dd d|_td|d dd|_||_t|_||j_ ||j_ ||j_ t |_ dS) Nr  r\ rz>l)rordrr_rrUrVFNamerrrrrXrY)rrBZfnameresttypeZcreatorflagsr r r rs     zHexBin._readheadercGst|jtkr td|r|d}t||j}n|j}d}t||kr2|||t|}t||ks!|j||_|S)NzRead data at wrong timerr0)rYrXrminrUrBr)rnr}r r r rs   z HexBin.readcCs6|jtkr td|jr||j}|t|_dS)Nzclose_data at wrong time)rYrXrrUrrrirZdummyr r r rjs   zHexBin.close_datacGsZ|jtkr ||jtkrtd|r|d}t||j}n|j}|j||_||S)Nz Read resource data at wrong timer)rYrXrjrirrrVr)rrr r r read_rsrcs    zHexBin.read_rsrccCsR|jdurdSz|jr||j}|Wd|_|jdSd|_|jwr+)rYrVrrror2rr r r r2s    z HexBin.closeN) rrr rrrrrrjrr2r r r r rus  rcCs t|}|j}|s |j}t|d} |d}|sn||qWdn1s-wY||d}|rZt |d}|| |d}|sPn||qH| | dS)NrQTrl) rrrrrrr1rjrr)r2)rmrnror#r<rdr r r rs2        r)rC contextlibrrr_r5warnr8__all__ ExceptionrrXrirLr>rrr(r)contextmanagerr9r;rIrPrrpryrrr r r r s<  (^+8 h