grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]B|ã @s�dddddddddd d d d g Zd dlZd dlZd dlZd dlZd dlZd dlmZd dlZd dl Z d dl Z d dl Z d dl m Z d dlmZejdddeƒZeƒjejƒGdd„deƒZGdd„deƒZejdd„ƒZGdd„deƒZdd„Zdd„Zdd„Zdd„ZGdd„dƒZ d Z!e j"d!ƒZ#d"d#d$„Z$d%d&„Z%e j"d'e j&ƒZ'd(d)„Z(d*d+„Z)d,d-„Z*Gd.d/„d/ƒZ+Gd0d1„d1ƒZ,Gd2d3„d3e,ƒZ-d4d5„Z.Gd6d7„d7e/ƒZ0d8d9d:d;d<d=d>d?iZ1e2ƒZ3Gd@dA„dAƒZ4dBdC„Z5e6e7e8eje9fZ:GdDdE„dEe2ƒZ;dFdG„Z<e=edHe.dIe+dJe-ƒe>edHe<dIe4dJe;ƒiZ?dKddLdMdNedOd „Z@dKddLdMdNedPd „ZAdKe=dQdMdRdSdTd „ZBdKe=dRdSdQdMdUd „ZCdS)VÚ readPlistÚ writePlistÚreadPlistFromBytesÚwritePlistToBytesÚPlistÚDataÚDictÚFMT_XMLÚ FMT_BINARYÚloadÚdumpÚloadsÚdumpséN)ÚBytesIO)Úwarn)Ú ParserCreateÚ PlistFormatzFMT_XML FMT_BINARYÚmodulec@s:eZdZfZdd„Zdd„Zdd„ZdS)Ú _InternalDictc CsCy||}Wntk r.t|ƒ‚YnXtdtdƒ|S)NzLAttribute access from plist dicts is deprecated, use d[key] notation insteadé)ÚKeyErrorÚAttributeErrorrÚDeprecationWarning)ÚselfÚattrÚvalue©rú-/opt/alt/python35/lib64/python3.5/plistlib.pyÚ __getattr__Vs  z_InternalDict.__getattr__cCstdtdƒ||||j|kStSdS)N)r)r(r<r?ÚNotImplemented)rÚotherrrrÚ__eq__ás  z Data.__eq__cCsd|jjt|jƒfS)Nz%s(%s))r(r!Úreprr<)rrrrÚ__repr__ész Data.__repr__N) r!r"r#r&r6rBrFrIrKrrrrrÌs   sŽ zv[\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f]rCcCsn|dd}g}xJtdt|ƒ|ƒD]0}||||…}|jtj|ƒƒq-Wdj|ƒS)Nééró)ÚrangeÚlenÚappendÚbinasciiZ b2a_base64Újoin)ÚsrEZ maxbinsizeÚpiecesÚiÚchunkrrrrDs rDcCs6t|tƒr%tj|jdƒƒStj|ƒSdS)Nzutf-8)r)r*rRZ a2b_base64Úencode)rTrrrrA srAz{(?P\d\d\d\d)(?:-(?P\d\d)(?:-(?P\d\d)(?:T(?P\d\d)(?::(?P\d\d)(?::(?P\d\d))?)?)?)?)?ZcCsid}tj|ƒjƒ}g}x8|D]0}||}|dkrEP|jt|ƒƒq(Wtj|ŒS)NÚyearÚmonthÚdayÚhourÚminuteÚsecond)rYrZr[r\r]r^)Ú _dateParserÚmatchÚ groupdictrQÚintÚdatetime)rTÚorderÚgdZlstÚkeyÚvalrrrÚ_date_from_strings   rhcCs,d|j|j|j|j|j|jfS)Nz%04d-%02d-%02dT%02d:%02d:%02dZ)rYrZr[r\r]r^)ÚdrrrÚ_date_to_string&srjcCs…tj|ƒ}|dk r'tdƒ‚|jddƒ}|jddƒ}|jddƒ}|jddƒ}|jd d ƒ}|S) Nzz>)Ú_controlCharPatÚsearchÚ ValueErrorÚreplace)ÚtextÚmrrrÚ_escape,s  rvc@sôeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'S)(Ú _PlistParsercCs1g|_d|_d|_||_||_dS)N)ÚstackÚ current_keyÚrootÚ_use_builtin_typesÚ _dict_type)rr8r9rrrr&9s     z_PlistParser.__init__cCsPtƒ|_|j|j_|j|j_|j|j_|jj|ƒ|j S)N) rÚparserÚhandle_begin_elementZStartElementHandlerÚhandle_end_elementZEndElementHandlerÚ handle_dataZCharacterDataHandlerZ ParseFilerz)rÚfileobjrrrÚparse@s  z_PlistParser.parsecCs9g|_t|d|dƒ}|dk r5||ƒdS)NZbegin_)r<Úgetattr)rÚelementÚattrsÚhandlerrrrr~Hs  z!_PlistParser.handle_begin_elementcCs-t|d|dƒ}|dk r)|ƒdS)NZend_)rƒ)rr„r†rrrrNs z_PlistParser.handle_end_elementcCs|jj|ƒdS)N)r<rQ)rr<rrrr€Ssz_PlistParser.handle_datacCsÀ|jdk rat|jdtiƒƒsAtd|jjƒ‚||jd|jr‡)rxrQÚwritelnr )rr„rrrÚ begin_element§sz_DumbXMLWriter.begin_elementcCs$|jd8_|jd|ƒdS)Nr‡z)r r£)rr„rrrÚ end_element¬sz_DumbXMLWriter.end_elementNcCsJ|dk r5t|ƒ}|jd|||fƒn|jd|ƒdS)Nz <%s>%sz<%s/>)rvr£)rr„rrrrÚsimple_element²s  z_DumbXMLWriter.simple_elementcCsb|rNt|tƒr$|jdƒ}|jj|j|jƒ|jj|ƒ|jjdƒdS)Nzutf-8s )r)r*rXrŸr5r r¡)rÚlinerrrr£ºs z_DumbXMLWriter.writeln)r!r"r#r&r¤r¥r¦r£rrrrr� s   r�c@sseZdZddddddd„Zdd „Zd d „Zd d „Zdd„Zdd„Zdd„Z dS)Ú _PlistWriterrs r‡TFcCs?|r|jtƒtj||||ƒ||_||_dS)N)r5Ú PLISTHEADERr�r&Ú _sort_keysÚ _skipkeys)rrŸr¢r¡Z writeHeaderr:r;rrrr&Çs   z_PlistWriter.__init__cCs+|jdƒ|j|ƒ|jdƒdS)Nzz)r£Ú write_value)rrrrrr5Ñs  z_PlistWriter.writecCs t|tƒr"|jd|ƒnz|dkr>|jdƒn^|dkrZ|jdƒnBt|tƒr«d|ko€dknrœ|jd d |ƒqœt|ƒ‚nñt|tƒrÓ|jd t|ƒƒnÉt|tƒrò|j|ƒnªt|t ƒr|j |ƒn‹t|t t fƒr6|j |ƒnft|tjƒra|jd t|ƒƒn;t|ttfƒr†|j|ƒntd t|ƒƒ‚dS)NÚstringTÚtrueFÚfalser‡é?é@Zintegerz%dÚrealZdatezunsupported type: %srˆlûÿÿÿl)r)r*r¦rbÚ OverflowErrorr˜rJÚdictÚ write_dictrÚ write_datar?Ú bytearrayÚ write_bytesrcrjÚtupleÚlistÚ write_arrayr@r‰)rrrrrr¬Ös.  z_PlistWriter.write_valuecCs|j|jƒdS)N)r¸r<)rr<rrrr¶ûsz_PlistWriter.write_datacCs¡|jdƒ|jd8_tddt|jjdd ƒ|jƒƒ}x3t||ƒjdƒD]}|rd|j|ƒqdW|jd7_|j dƒdS) Nr<r‡érCs ó és s ) r¤r ÚmaxrPr¡rsrDÚsplitr£r¥)rr<rEr§rrrr¸þs )z_PlistWriter.write_bytescCs¹|r¨|jdƒ|jr1t|jƒƒ}n |jƒ}xX|D]P\}}t|tƒsw|jrkqDtdƒ‚|jd|ƒ|j |ƒqDW|j dƒn |jdƒdS)Nr´zkeys must be stringsrf) r¤rªÚsortedÚitemsr)r*r«r@r¦r¬r¥)rrirÂrfrrrrrµ s     z_PlistWriter.write_dictcCsR|rA|jdƒx|D]}|j|ƒqW|jdƒn |jdƒdS)NÚarray)r¤r¬r¥r¦)rrÃrrrrr»s   z_PlistWriter.write_arrayN) r!r"r#r&r5r¬r¶r¸rµr»rrrrr¨Æs    %  r¨cCsÈd }x!|D]}|j|ƒr dSq Wx—tjdftjdftjdffD]k\}}|j|ƒssqUxJ|D]B}||jdƒj|ƒ}|dt|ƒ…|krzdSqzWqUWdS) Nó6xBBQQQiàÿÿÿ)Ú_fpÚseekÚosÚSEEK_ENDÚreadrPrÓÚstructÚunpackÚ _ref_sizeÚ _read_intsÚ_object_offsetsÚ _undefinedÚ_objectsÚ _read_objectÚOSErrorÚ IndexErrorÚerror)rr.ÚtrailerÚ offset_sizeÚ num_objectsÚ top_objectÚoffset_table_offsetrrrr‚_s  $z_BinaryPlistParser.parsecCsb|dkr^|jjdƒdd@}d|>}dt|}tj||jj|ƒƒdS|S)Nér‡rrMro)rÛrßÚ_BINARY_FORMATràrá)rÚtokenLrurTr>rrrÚ _get_sizews    z_BinaryPlistParser._get_sizecsr|jjˆ|ƒ‰ˆtkr>tjdtˆ|ˆƒSt‡‡fdd†tdˆ|ˆƒDƒƒSdS)Nroc3s/|]%}tjˆ||ˆ…dƒVqdS)ÚbigN)rbÚ from_bytes)Ú.0rV)r<Úsizerrú †sz0_BinaryPlistParser._read_ints..r)rÛrßrñràrár¹rO)rÚnr÷r)r<r÷rrã�s  z_BinaryPlistParser._read_intscCs|j||jƒS)N)rãrâ)rrùrrrÚ _read_refs‰sz_BinaryPlistParser._read_refsc s‰ˆj|}|tk r|Sˆj|}ˆjj|ƒˆjjdƒd}|d@|d@}}|dkrzd}nþ|dkr�d}né|dkr¤d}nÔ|dkr¹d }n¿|d krötjˆjjd|>ƒd d |d kƒ}n‚|dkr'tj dˆjjdƒƒd}nQ|dkrXtj dˆjjdƒƒd}n |dkr®tj dˆjjdƒƒd}t j dddƒt j d|ƒ}nÊ|dkrˆj |ƒ}ˆj rçˆjj|ƒ}qxtˆjj|ƒƒ}nv|dkrAˆj |ƒ}ˆjj|ƒjdƒ}|}n7|dkr~ˆj |ƒ}ˆjj|dƒjdƒ}nú|dkrÞˆj |ƒ}ˆj|ƒ} g}|ˆj|<|j‡fdd†| Dƒƒnš|dkroˆj |ƒ}ˆj|ƒ} ˆj|ƒ} ˆjƒ}|ˆj|frLé#z>dé3iÑZsecondsr±éPrÆé`rzutf-16beé c3s|]}ˆj|ƒVqdS)N)rç)röÚx)rrrrøÓsz2_BinaryPlistParser._read_object..éÐ)rærårärÛrÜrßrbrõràrárcZ timedeltarór{rrÌrúÚextendr|ÚziprçrÓ) rÚrefÚresultÚoffsetÚtokenZtokenHròr>rTZobj_refsZkey_refsÚkÚor)rrrçŒsn             % % "     "  #   #  z_BinaryPlistParser._read_objectN) r!r"r#r&r‚rórãrúrçrrrrrÙSs     rÙcCs:|dkrdS|dkr dS|d>d>r2dSdSdS) Nr‡r¾r¼rrÚrLéir)ÚcountrrrÚ_count_to_sizeês  rc@sXeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú_BinaryPlistWritercCs||_||_||_dS)N)rÛrªr«)rr.r:r;rrrr&ús  z_BinaryPlistWriter.__init__c Cs3g|_i|_i|_|j|ƒt|jƒ}dg||_t|ƒ|_t|j|_ |j j dƒx|jD]}|j |ƒq€W|j |ƒ}|j jƒ}t|ƒ}dt||}|j j tj||jŒƒd}|||j|||f} |j j tjd| ŒƒdS)Nrsbplist00roz >5xBBBQQQ)Ú_objlistÚ _objtableÚ _objidtableÚ_flattenrPrärrârñÚ _ref_formatrÛr5Ú _write_objectÚ _getrefnumÚtellràÚpack) rrríÚobjrîrïrìZ offset_formatZ sort_versionrërrrr5ÿs(      z_BinaryPlistWriter.writec Cst|tƒr1t|ƒ|f|jkr�dSnPt|tƒrht|jƒ|jf|jkr�dSnt|ƒ|jkr�dSt|j ƒ}|j j |ƒt|tƒrË||jt|ƒ|fBr‡r¾z>BBBr¼z>BBHérÚz>BBLéz>BBQéril)rÛr5ràr)rr r÷rrrÚ _write_sizeds # ) ) )z_BinaryPlistWriter._write_sizec sˆj|ƒ}ˆjjƒˆj|<|dkrDˆjjdƒnÈ|dkrcˆjjdƒn©|dkr‚ˆjjdƒnŠt|tƒræ|dkrêy#ˆjjtjdd|ƒƒWqãtj k ræt |ƒd‚YqãXq |d'krˆjjtjd d |ƒƒq |d(krFˆjjtjd d|ƒƒq |d)krtˆjjtjdd|ƒƒq |d*kr¢ˆjjtjdd|ƒƒq |d+kr׈jjd|j d dddƒƒq t |ƒ‚n&t|t ƒrˆjjtjdd|ƒƒnõt|t j ƒrj|t j dd d ƒjƒ}ˆjjtjdd|ƒƒn¢t|tƒr¨ˆjdt|jƒƒˆjj|jƒndt|ttfƒræˆjdt|ƒƒˆjj|ƒn&t|tƒroy)|jdƒ}ˆjdt|ƒƒWn;tk r[|jdƒ}ˆjdt|ƒd ƒYnXˆjj|ƒn�t|ttfƒrã‡fd!d"†|Dƒ}t|ƒ}ˆjd#|ƒˆjjtjd$ˆj||Œƒn)t|tƒrgg}}ˆjrt|jƒƒ} n |jƒ} xg| D]_\} } t| tƒscˆjrWq0t d%ƒ‚|j!ˆj| ƒƒ|j!ˆj| ƒƒq0Wt|ƒ}ˆjd&|ƒˆjjtjd$ˆj||Œƒˆjjtjd$ˆj||Œƒn t |ƒ‚dS),NsFsTs rz>Bqr%r‡r¾z>BBr¼z>BHr#rÚz>BLr$r°z>BQr±srôrýz>BdrÿiÑrrÆrzutf-16berrcsg|]}ˆj|ƒ‘qSr)r)rör )rrrú ­s z4_BinaryPlistWriter._write_object..rrozkeys must be stringsrrilll)"rrÛrrär5r)rbràrrêr³Úto_bytesr˜rcZ total_secondsrr&rPr<r?r·r*rXÚUnicodeEncodeErrorrºr¹rr´rªrÁrÂr«r@rQ) rrrr>ÚtZrefsrTZkeyRefsZvalRefsZ rootItemsr r"r)rrrts„    # " " " " )""  *      '*z _BinaryPlistWriter._write_objectN) r!r"r#r&r5rrr&rrrrrrùs   - 0  rcCs|dd…dkS)Nr¾sbplist00r)rÍrrrÚ_is_fmt_binaryËsr+Údetectr}Úwriterr7r8Tr9cCs–|dkrf|jdƒ}|jdƒxItjƒD]!}|d|ƒr5|d}Pq5Wtƒ‚nt|d}|d|d|ƒ}|j|ƒS)NrÚrr,r}r8r9)rßrÜÚ_FORMATSr!rÓr‚)r.r7r8r9rÍÚinfoÚPÚprrrr ás    cCs(t|ƒ}t|d|d|d|ƒS)Nr7r8r9)rr )rr7r8r9r.rrrr ÷s r:r;FcCsP|tkrtd|fƒ‚t|d|d|d|ƒ}|j|ƒdS)NzUnsupported format: %rr-r:r;)r.rrr5)rr.r7r:r;r-rrrr s  c Cs2tƒ}t||d|d|d|ƒ|jƒS)Nr7r;r:)rr r=)rr7r;r:r.rrrr s )DÚ__all__rRrÈÚ contextlibrcÚenumÚiorrrÝÚreràÚwarningsrZxml.parsers.expatrÚEnumr!rÚglobalsr1Ú __members__r´rrÚcontextmanagerr/rrrrrrr©ÚcompilerprDrAÚASCIIr_rhrjrvrwr�r¨rÒrrrÓrñÚobjectrårÙrr*rbr˜r?rrr+rr r.r r r r rrrrÚ1st              0    h&d ! — Ò