+
    öÙ†jHu  ã            	       óÔ  € R t . R0Ot^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RI	t	^ RI
t
^ RIt^ RIHt ]P                  ! RR]R7      t]! 4       P%                  ]P&                  4       R1t ! R	 R4      tR
t]
P.                  ! R4      tR2R ltR t]
P.                  ! R]
P6                  4      tR tR tR t ! R R4      t  ! R R4      t! ! R R]!4      t"R t# ! R R]$4      t%^R^R^R^R/t&]'! 4       t( ! R R4      t)R  t*]+],]-]P                  ].3t/ ! R! R"]'4      t0R# t1]2]3! ]#] ]"R$7      ]4]3! ]1])]0R$7      /t5R%RR&]3R'R(/R) lt6R%RR&]3R'R(/R* lt7R%]2R+R,R-R(R'R(/R. lt8R%]2R-R(R+R,R'R(/R/ lt9R# )3a>  plistlib.py -- a tool to generate and parse MacOSX .plist files.

The property list (.plist) file format is a simple XML pickle supporting
basic object types, like dictionaries, lists, numbers and strings.
Usually the top level object is a dictionary.

To write out a plist file, use the dump(value, file)
function. 'value' is the top level object, 'file' is
a (writable) file object.

To parse a plist from a file, use the load(file) function,
with a (readable) file object as the only argument. It
returns the top level object (again, usually a dictionary).

To work with plist data in bytes objects, you can use loads()
and dumps().

Values can be strings, integers, floats, booleans, tuples, lists,
dictionaries (but only with string keys), Data, bytes, bytearray, or
datetime.datetime objects.

Generate Plist example:

    import datetime as dt
    import plistlib

    pl = dict(
        aString = "Doodah",
        aList = ["A", "B", 12, 32.1, [1, 2, 3]],
        aFloat = 0.1,
        anInt = 728,
        aDict = dict(
            anotherString = "<hello & hi there!>",
            aThirdString = "M\xe4ssig, Ma\xdf",
            aTrueValue = True,
            aFalseValue = False,
        ),
        someData = b"<binary gunk>",
        someMoreData = b"<lots of binary gunk>" * 10,
        aDate = dt.datetime.now()
    )
    print(plistlib.dumps(pl).decode())

Parse Plist example:

    import plistlib

    plist = b'''<plist version="1.0">
    <dict>
        <key>foo</key>
        <string>bar</string>
    </dict>
    </plist>'''
    pl = plistlib.loads(plist)
    print(pl["foo"])
ÚInvalidFileExceptionÚUIDN)ÚBytesIO)ÚParserCreateÚPlistFormatzFMT_XML FMT_BINARY)Úmodulec                   óD   a € ] tR t^Pt o R tR tR tR tR tR t	Rt
V tR# )	r   c                óœ   € \        V\        4      '       g   \        R 4      hVR8¼  d   \        R4      hV^ 8  d   \        R4      hWn        R# )zdata must be an intzUIDs cannot be >= 2**64úUIDs must be positiveNì            )Ú
isinstanceÚintÚ	TypeErrorÚ
ValueErrorÚdata©Úselfr   s   &&Ú/usr/lib/python3.14/plistlib.pyÚ__init__ÚUID.__init__Q   sF   € Ü˜$¤×$Ò$ÜÐ1Ó2Ð2Ø�7Œ?ÜÐ6Ó7Ð7Ø�!Œ8ÜÐ4Ó5Ð5ØŽ	ó    c                ó   € V P                   # ©N©r   ©r   s   &r   Ú	__index__ÚUID.__index__Z   s   € Ø�y‰yÐr   c                ód   € V P                   P                  : R \        V P                  4      : R2# )Ú(Ú))Ú	__class__Ú__name__Úreprr   r   s   &r   Ú__repr__ÚUID.__repr__]   s   € ØŸ>™>×2Ô2´D¸¿¹¶OÐDÐDr   c                ó4   € V P                   V P                  33# r   )r    r   r   s   &r   Ú
__reduce__ÚUID.__reduce__`   s   € Ø�~‰~ §	¡	˜|Ð+Ð+r   c                ól   € \        V\        4      '       g   \        # V P                  VP                  8H  # r   )r   r   ÚNotImplementedr   )r   Úothers   &&r   Ú__eq__Ú
UID.__eq__c   s(   € Ü˜%¤×%Ò%Ü!Ð!Ø�y‰y˜EŸJ™JÑ&Ð&r   c                ó,   € \        V P                  4      # r   )Úhashr   r   s   &r   Ú__hash__ÚUID.__hash__h   s   € Ü�D—I‘I‹Ðr   r   N)r!   Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r#   r&   r+   r/   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r   P   s)   ø‡ € òòòEò,ò'÷
ð r   sŽ   <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
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]c                 óà   € V^,          ^,          p. p\        ^ \        V 4      V4       F2  pWWB,            pVP                  \        P                  ! V4      4       K4  	  RP                  V4      # )é   r   )ÚrangeÚlenÚappendÚbinasciiÚ
b2a_base64Újoin)ÚsÚmaxlinelengthÚ
maxbinsizeÚpiecesÚiÚchunks   &&    r   Ú_encode_base64rF   |   sa   € à Õ" AÕ%€JØ€FÜ�1”c˜!“f˜jÖ)ˆØ�a•nÐ%ˆØ�‰”h×)Ò)¨%Ó0Ö1ñ *ð �8‰8�FÓÐr   c                 ó¤   € \        V \        4      '       d&   \        P                  ! V P	                  R 4      4      # \        P                  ! V 4      # )úutf-8)r   Ústrr=   Ú
a2b_base64Úencode)r@   s   &r   Ú_decode_base64rL   …   s<   € Ü�!”S×ÒÜ×"Ò" 1§8¡8¨GÓ#4Ó5Ð5ô ×"Ò" 1Ó%Ð%r   z{(?P<year>\d\d\d\d)(?:-(?P<month>\d\d)(?:-(?P<day>\d\d)(?:T(?P<hour>\d\d)(?::(?P<minute>\d\d)(?::(?P<second>\d\d))?)?)?)?)?Zc                 ó2  € Rp\         P                  V 4      P                  4       p. pV F+  pW5,          pVf    MVP                  \	        V4      4       K-  	  V'       d%   \
        P
                  ! VR\
        P                  / # \
        P
                  ! V!  # )ÚyearÚtzinfo)rN   ÚmonthÚdayÚhourÚminuteÚsecond)Ú_dateParserÚmatchÚ	groupdictr<   r   ÚdatetimeÚUTC)r@   Úaware_datetimeÚorderÚgdÚlstÚkeyÚvals   &&     r   Ú_date_from_stringr`   ’   s~   € Ø@€EÜ	×	Ñ	˜1Ó	×	'Ñ	'Ó	)€BØ
€CÛˆØ�gˆØŠ;ÙØ�
‰
”3�s“8Öñ	 ÷
 Ü× Ò  #Ð;¬h¯l©lÑ;Ð;Ü×Ò˜cÑ"Ð"r   c                 óæ   € V'       d    V P                  \        P                  4      p R V P                  V P                  V P
                  V P                  V P                  V P                  3,          # )z%04d-%02d-%02dT%02d:%02d:%02dZ)	Ú
astimezonerX   rY   rN   rP   rQ   rR   rS   rT   )ÚdrZ   s   &&r   Ú_date_to_stringrd       sO   € ßØ�L‰LœŸ™Ó&ˆØ+Ø	�‰�—‘˜Ÿ™Ø	�‰�—‘˜!Ÿ(™(ð/õ ð r   c                 ó  € \         P                  V 4      pVe   \        R4      hV P                  RR4      p V P                  RR4      p V P                  RR4      p V P                  RR4      p V P                  R	R
4      p V # )Nz;strings can't contain control characters; use bytes insteadz
Ú
ÚÚ&z&amp;Ú<z&lt;Ú>z&gt;)Ú_controlCharPatÚsearchr   Úreplace)ÚtextÚms   & r   Ú_escaperp   ¨   s~   € Ü×Ñ˜tÓ$€AØ‚}Üð -ó .ð 	.à�<‰<˜ Ó%€DØ�<‰<˜˜dÓ#€DØ�<‰<˜˜WÓ%€DØ�<‰<˜˜VÓ$€DØ�<‰<˜˜VÓ$€DØ€Kr   c                   óœ   a € ] tR t^´t o RR ltR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tRtV tR# )Ú_PlistParserc                óH   € . V n         R V n        R V n        Wn        W n        R # r   )ÚstackÚcurrent_keyÚrootÚ
_dict_typeÚ_aware_datetime©r   Ú	dict_typerZ   s   &&&r   r   Ú_PlistParser.__init__µ   s#   € ØˆŒ
ØˆÔØˆŒ	Ø#ŒØ-Ör   c                óF  € \        4       V n        V P                  V P                  n        V P                  V P                  n        V P                  V P                  n        V P                  V P                  n	        V P                  P                  V4       V P                  # r   )r   ÚparserÚhandle_begin_elementÚStartElementHandlerÚhandle_end_elementÚEndElementHandlerÚhandle_dataÚCharacterDataHandlerÚhandle_entity_declÚEntityDeclHandlerÚ	ParseFilerv   )r   Úfileobjs   &&r   ÚparseÚ_PlistParser.parse¼   so   € Ü"“nˆŒØ*.×*CÑ*Cˆ�‰Ô'Ø(,×(?Ñ(?ˆ�‰Ô%Ø+/×+;Ñ+;ˆ�‰Ô(Ø(,×(?Ñ(?ˆ�‰Ô%Ø�‰×Ñ˜gÔ&Ø�y‰yÐr   c                ó   € \        R 4      h)z8XML entity declarations are not supported in plist files)r   )r   Úentity_nameÚis_parameter_entityÚvalueÚbaseÚ	system_idÚ	public_idÚnotation_names   &&&&&&&&r   r„   Ú_PlistParser.handle_entity_declÅ   s   € ô #Ð#]Ó^Ð^r   c                óX   € . V n         \        V R V,           R4      pVe   V! V4       R# R# )Úbegin_N)r   Úgetattr)r   ÚelementÚattrsÚhandlers   &&& r   r~   Ú!_PlistParser.handle_begin_elementË   s.   € ØˆŒ	Ü˜$ ¨7Õ 2°DÓ9ˆØÒÙ�EŽNñ r   c                óH   € \        V R V,           R4      pVe
   V! 4        R# R# )Úend_N)r•   )r   r–   r˜   s   && r   r€   Ú_PlistParser.handle_end_elementÑ   s%   € Ü˜$ ¨Õ 0°$Ó7ˆØÒÙŽIñ r   c                ó<   € V P                   P                  V4       R # r   )r   r<   r   s   &&r   r‚   Ú_PlistParser.handle_dataÖ   s   € Ø�	‰	×Ñ˜Ör   c                ó  € V P                   ev   \        V P                  R,          \        4      '       g'   \	        RV P
                  P                  ,          4      hWP                  R,          V P                   &   R V n         R # V P                  '       g	   Wn        R # \        V P                  R,          \        4      '       g'   \	        RV P
                  P                  ,          4      hV P                  R,          P                  V4       R # )Nzunexpected element at line %déÿÿÿÿ)
ru   r   rt   Údictr   r}   ÚCurrentLineNumberrv   Úlistr<   ©r   r�   s   &&r   Ú
add_objectÚ_PlistParser.add_objectÙ   sÂ   € Ø×ÑÒ'Ü˜dŸj™j¨�n¬d×3Ò3Ü Ð!@Ø!%§¡×!>Ñ!>õ"?ó @ð @à/4�J‰J�r�N˜4×+Ñ+Ñ,Ø#ˆDÖØ——�àŽIä˜dŸj™j¨�n¬d×3Ò3Ü Ð!@Ø!%§¡×!>Ñ!>õ"?ó @ð @à�J‰J�r�N×!Ñ! %Ö(r   c                óJ   € R P                  V P                  4      p. V n        V# )Ú )r?   r   r   s   & r   Úget_dataÚ_PlistParser.get_dataé   s    € Ø�w‰w�t—y‘yÓ!ˆØˆŒ	Øˆr   c                ó~   € V P                  4       pV P                  V4       V P                  P                  V4       R # r   )rw   r¥   rt   r<   )r   r—   rc   s   && r   Ú
begin_dictÚ_PlistParser.begin_dictð   s,   € Ø�O‰OÓˆØ�‰˜ÔØ�
‰
×Ñ˜!Ör   c                óÂ   € V P                   '       d3   \        R V P                   V P                  P                  3,          4      hV P                  P                  4        R# )z%missing value for key '%s' at line %dN)ru   r   r}   r¢   rt   Úpopr   s   &r   Úend_dictÚ_PlistParser.end_dictõ   sL   € Ø××ÐÜÐDØ"×.Ñ.¨t¯{©{×/LÑ/LÐMõNó Oð Oà�
‰
�‰Ör   c                óî   € V P                   '       g(   \        V P                  R,          \        4      '       g'   \	        RV P
                  P                  ,          4      hV P                  4       V n         R# )é   zunexpected key at line %dNr    )ru   r   rt   r¡   r   r}   r¢   r©   r   s   &r   Úend_keyÚ_PlistParser.end_keyû   sR   € Ø××Ð¤:¨d¯j©j¸­n¼d×#CÒ#CÜÐ8Ø!Ÿ[™[×:Ñ:õ;ó <ð <àŸ=™=›?ˆÖr   c                ób   € . pV P                  V4       V P                  P                  V4       R # r   )r¥   rt   r<   )r   r—   Úas   && r   Úbegin_arrayÚ_PlistParser.begin_array  s%   € ØˆØ�‰˜ÔØ�
‰
×Ñ˜!Ör   c                ó:   € V P                   P                  4        R # r   )rt   r¯   r   s   &r   Ú	end_arrayÚ_PlistParser.end_array  s   € Ø�
‰
�‰Ör   c                ó(   € V P                  R 4       R# )TN©r¥   r   s   &r   Úend_trueÚ_PlistParser.end_true	  s   € Ø�‰˜Ör   c                ó(   € V P                  R 4       R# )FNr¾   r   s   &r   Ú	end_falseÚ_PlistParser.end_false  s   € Ø�‰˜Ör   c                óð   € V P                  4       pVP                  R 4      '       g   VP                  R4      '       d   V P                  \        V^4      4       R# V P                  \        V4      4       R# )Ú0xÚ0XN)r©   Ú
startswithr¥   r   )r   Úraws   & r   Úend_integerÚ_PlistParser.end_integer  sL   € Ø�m‰m‹oˆØ�>‰>˜$×Ò 3§>¡>°$×#7Ò#7Ø�O‰OœC  R›LÖ)à�O‰OœC ›HÖ%r   c                óV   € V P                  \        V P                  4       4      4       R # r   )r¥   Úfloatr©   r   s   &r   Úend_realÚ_PlistParser.end_real  s   € Ø�‰œ˜dŸm™m›oÓ.Ö/r   c                óD   € V P                  V P                  4       4       R # r   )r¥   r©   r   s   &r   Ú
end_stringÚ_PlistParser.end_string  s   € Ø�‰˜Ÿ™›Ö(r   c                óV   € V P                  \        V P                  4       4      4       R # r   )r¥   rL   r©   r   s   &r   Úend_dataÚ_PlistParser.end_data  s   € Ø�‰œ t§}¡}£Ó7Ö8r   c                ón   € V P                  \        V P                  4       V P                  R 7      4       R# ))rZ   N)r¥   r`   r©   rx   r   s   &r   Úend_dateÚ_PlistParser.end_date  s)   € Ø�‰Ô)¨$¯-©-«/Ø9=×9MÑ9MôOö 	Pr   )rx   rw   ru   r   r}   rv   rt   N©F)r!   r1   r2   r3   r   rˆ   r„   r~   r€   r‚   r¥   r©   r¬   r°   r´   r¸   r»   r¿   rÂ   rÉ   rÍ   rÐ   rÓ   rÖ   r4   r5   r6   s   @r   rr   rr   ´   sq   ø‡ € ô.òò_òòò
ò)ò òò
ò+òò
òòò&ò0ò)ò9÷Pð Pr   rr   c                   óF   a € ] tR tRt o R	R ltR tR tR
R ltR tRt	V t
R# )Ú_DumbXMLWriteri$  c                ó8   € Wn         . V n        W n        W0n        R # r   )Úfilert   Ú_indent_levelÚindent)r   rÜ   Úindent_levelrÞ   s   &&&&r   r   Ú_DumbXMLWriter.__init__%  s   € ØŒ	ØˆŒ
Ø)ÔØŽr   c                óž   € V P                   P                  V4       V P                  R V,          4       V ;P                  ^,          un        R# )z<%s>N)rt   r<   ÚwritelnrÝ   ©r   r–   s   &&r   Úbegin_elementÚ_DumbXMLWriter.begin_element+  s6   € Ø�
‰
×Ñ˜'Ô"Ø�‰�V˜gÕ%Ô&Ø×Ò˜aÕ×r   c                óÐ   € V P                   ^ 8”  g   Q hV P                  P                  4       V8X  g   Q hV ;P                   ^,          un         V P                  RV,          4       R# )é    z</%s>N)rÝ   rt   r¯   râ   rã   s   &&r   Úend_elementÚ_DumbXMLWriter.end_element0  sQ   € Ø×!Ñ! AÔ%Ð%Ð%Ø�z‰z�~‰~Ó 7Ô*Ð*Ð*Ø×Ò˜aÕÕØ�‰�W˜wÕ&Ö'r   Nc           	     ó”   € Ve,   \        V4      pV P                  RV: RV: RV: R24       R # V P                  RV,          4       R # )Nri   rj   z</z<%s/>)rp   râ   )r   r–   r�   s   &&&r   Úsimple_elementÚ_DumbXMLWriter.simple_element6  s7   € ØÒÜ˜E“NˆEØ�LŠL«'³5»'ÐBÖCð �L‰L˜ 7Õ*Ö+r   c                ó<  € V'       dy   \        V\        4      '       d   VP                  R 4      pV P                  P	                  V P
                  V P                  ,          4       V P                  P	                  V4       V P                  P	                  R4       R# )rH   ó   
N)r   rI   rK   rÜ   ÚwriterÝ   rÞ   )r   Úlines   &&r   râ   Ú_DumbXMLWriter.writeln>  sa   € ßô ˜$¤×$Ò$Ø—{‘{ 7Ó+�Ø�I‰I�O‰O˜D×.Ñ.°·±Õ<Ô=Ø�I‰I�O‰O˜DÔ!Ø�	‰	�‰˜Ör   )rÝ   rÜ   rÞ   rt   )rç   Ú	r   )r!   r1   r2   r3   r   rä   rè   rë   râ   r4   r5   r6   s   @r   rÚ   rÚ   $  s#   ø‡ € ôò ò
(ô,÷	ð 	r   rÚ   c                   óH   a € ] tR tRt o R
R ltR tR tR tR tR t	Rt
V tR	# )Ú_PlistWriteriJ  c                ó�   € V'       d   VP                  \        4       \        P                  WW#4       WPn        W`n        Wpn        R # r   )rï   ÚPLISTHEADERrÚ   r   Ú
_sort_keysÚ	_skipkeysrx   )r   rÜ   rß   rÞ   ÚwriteHeaderÚ	sort_keysÚskipkeysrZ   s   &&&&&&&&r   r   Ú_PlistWriter.__init__K  s3   € ÷ Ø�J‰J”{Ô#Ü×Ñ ¨LÔAØ#ŒØ!ŒØ-Ör   c                ól   € V P                  R 4       V P                  V4       V P                  R4       R# )z<plist version="1.0">z</plist>N)râ   Úwrite_valuer¤   s   &&r   rï   Ú_PlistWriter.writeV  s)   € Ø�‰Ð.Ô/Ø×Ñ˜ÔØ�‰�ZÖ r   c                óŽ  € \        V\        4      '       d   V P                  R V4       R
# VRJ d   V P                  R4       R
# VRJ d   V P                  R4       R
# \        V\        4      '       d9   RTu;8:  d   R8  d   M MV P                  RRV,          4       R
# \	        V4      h\        V\
        4      '       d   V P                  R\        V4      4       R
# \        V\        4      '       d   V P                  V4       R
# \        V\        \        34      '       d   V P                  V4       R
# \        V\        P                  4      '       d(   V P                  R\        WP                  4      4       R
# \        V\        \         34      '       d   V P#                  V4       R
# \%        R	\'        V4      ,          4      h)ÚstringTÚtrueFÚfalseÚintegerz%dÚrealÚdatezunsupported type: %sNlûÿÿÿ         r   )r   rI   rë   r   ÚOverflowErrorrÌ   r"   r¡   Ú
write_dictÚbytesÚ	bytearrayÚwrite_bytesrX   rd   rx   Útupler£   Úwrite_arrayr   Útyper¤   s   &&r   rþ   Ú_PlistWriter.write_value[  sF  € Ü�eœS×!Ò!Ø×Ñ ¨%Ö0à�d‹]Ø×Ñ Ö'à�e‹^Ø×Ñ Ö(ä˜œs×#Ò#Ø˜5Ö* 7×*Ø×#Ñ# I¨t°e­|Ö<ä# EÓ*Ð*ä˜œu×%Ò%Ø×Ñ ¬¨U«Ö4ä˜œt×$Ò$Ø�O‰O˜EÖ"ä˜¤¤yÐ1×2Ò2Ø×Ñ˜UÖ#ä˜œx×0Ñ0×1Ò1Ø×Ñ Ü /°×7KÑ7KÓ LöNô ˜¤¤t˜}×-Ò-Ø×Ñ˜UÖ#ô Ð2´T¸%³[Õ@ÓAÐAr   c                ó°  € V P                  R 4       V ;P                  ^,          un        \        ^^L\        V P                  V P                  ,          P                  4       4      ,
          4      p\        W4      P                  R4       F  pV'       g   K  V P                  V4       K   	  V ;P                  ^,          un        V P                  R 4       R# )r   rî   N)
rä   rÝ   Úmaxr;   rÞ   Ú
expandtabsrF   Úsplitrâ   rè   )r   r   rA   rð   s   &&  r   r  Ú_PlistWriter.write_bytes~  s£   € Ø×Ñ˜6Ô"Ø×Ò˜aÕÕÜØØ”�d—k‘k D×$6Ñ$6Õ6×BÑBÓDÓEÕEóGˆô # 4Ó7×=Ñ=¸eÖDˆDß‰tØ—‘˜TÖ"ñ Eð 	×Ò˜aÕÕØ×Ñ˜Ö r   c                ó¾  € V'       dÄ   V P                  R 4       V P                  '       d   \        VP                  4       4      pMVP                  4       pV F]  w  r4\	        V\
        4      '       g    V P                  '       d   K/  \        R4      hV P                  RV4       V P                  V4       K_  	  V P                  R 4       R# V P                  R 4       R# )r¡   úkeys must be stringsr^   N)rä   r÷   ÚsortedÚitemsr   rI   rø   r   rë   rþ   rè   )r   rc   r  r^   r�   s   &&   r   r  Ú_PlistWriter.write_dict‹  s¦   € ßØ×Ñ˜vÔ&Ø��ˆÜ˜qŸw™w›yÓ)‘àŸ™›	�ã#‘
�Ü! #¤s×+Ò+Ø—~—~�~Ù Ü#Ð$:Ó;Ð;Ø×#Ñ# E¨3Ô/Ø× Ñ  Ö'ñ $ð ×Ñ˜VÖ$ð ×Ñ Ö'r   c                ó´   € V'       d?   V P                  R 4       V F  pV P                  V4       K  	  V P                  R 4       R# V P                  R 4       R# )ÚarrayN)rä   rþ   rè   rë   )r   r  r�   s   && r   r  Ú_PlistWriter.write_arrayŸ  sI   € ßØ×Ñ˜wÔ'Û�Ø× Ñ  Ö'ñ à×Ñ˜WÖ%ð ×Ñ Ö(r   )rx   rø   r÷   N)rç   ó   	r³   TFF)r!   r1   r2   r3   r   rï   rþ   r  r  r  r4   r5   r6   s   @r   rô   rô   J  s*   ø‡ € ô	.ò!ò
!BòF!ò(÷()ð )r   rô   c                 óŠ  € RpV F  pV P                  V4      '       g   K   R# 	  \        P                  R3\        P                  R3\        P                  R33 Fd  w  r4V P                  V4      '       g   K  V F@  pW5P                  R4      P                  V4      ,           pV R\        V4       V8X  g   K>    R# 	  Kf  	  R# )	ó   <?xmlTrH   z	utf-16-bez	utf-16-leÚasciiNF)r  s   <plist)rÇ   ÚcodecsÚBOM_UTF8ÚBOM_UTF16_BEÚBOM_UTF16_LEÚdecoderK   r;   )ÚheaderÚprefixesÚpfxÚbomÚencodingÚstartÚprefixs   &      r   Ú_is_fmt_xmlr-  ª  s´   € Ø$€HãˆØ×Ñ˜S×!Ô!Úñ ô —‘ 'Ð*Ü×$Ñ$ kÐ2Ü×$Ñ$ kÐ2ó‰ˆð × Ñ  ×%Ò%ÙãˆEØŸ<™<¨Ó0×7Ñ7¸ÓAÕAˆFØ�l”s˜6“{Ð# vÖ-Ûó ññ  r   c                   ó*   a € ] tR tRt o RR ltRtV tR# )r   iË  c                ó0   € \         P                  W4       R # r   )r   r   )r   Úmessages   &&r   r   ÚInvalidFileException.__init__Ì  s   € Ü×Ñ˜DÖ*r   © N)zInvalid file)r!   r1   r2   r3   r   r4   r5   r6   s   @r   r   r   Ë  s   ø‡ € ÷+ò +r   ÚBÚHÚLÚQc                   óR   a € ] tR tRt o RtRR ltR tR tR tR t	R t
R	 tR
tV tR# )Ú_BinaryPlistParseriÓ  zï
Read or write a binary plist file, following the description of the binary
format.  Raise InvalidFileException in case of error, otherwise return the
root object.

see also: http://opensource.apple.com/source/CF/CF-744.18/CFBinaryPList.c
c                ó   € Wn         W n        R # r   )rw   Ú_aware_datimery   s   &&&r   r   Ú_BinaryPlistParser.__init__Û  s   € Ø#ŒØ+Ör   c                ó(  €  Wn         V P                   P                  R\        P                  4       V P                   P	                  ^ 4      p\        V4      ^ 8w  d   \        4       h\        P                  ! RV4      w  q0n	        rEpV P                   P                  V4       V P                  WC4      V n        \        .V,          V n        V P                  V4      #   \        \         \        P"                  \$        \&        3 d    \        4       hi ; i)é    z>6xBBQQQiàÿÿÿ)Ú_fpÚseekÚosÚSEEK_ENDÚreadr;   r   ÚstructÚunpackÚ	_ref_sizeÚ
_read_intsÚ_object_offsetsÚ
_undefinedÚ_objectsÚ_read_objectÚOSErrorÚ
IndexErrorÚerrorr  r   )r   ÚfpÚtrailerÚoffset_sizeÚnum_objectsÚ
top_objectÚoffset_table_offsets   &&     r   rˆ   Ú_BinaryPlistParser.parseß  sÕ   € ð	)ð ŒHØ�H‰H�M‰M˜#œrŸ{™{Ô+Ø—h‘h—m‘m BÓ'ˆGÜ�7‹|˜rÔ!Ü*Ó,Ð,ô —’˜j¨'Ó2ñØœ^¨[Ø#à�H‰H�M‰MÐ-Ô.Ø#'§?¡?°;Ó#LˆDÔ Ü'˜L¨;Õ6ˆDŒMØ×$Ñ$ ZÓ0Ð0øäœ¤V§\¡\´=Üðô 	)ä&Ó(Ð(ð	)ús   ‚CC Ã5Dc                ó  € V^8X  d}   V P                   P                  ^4      ^ ,          ^,          p^V,          pR\        V,          ,           p\        P                  ! W@P                   P                  V4      4      ^ ,          # V# )z#return the size of the next object.rj   )r>  rB  Ú_BINARY_FORMATrC  rD  )r   ÚtokenLro   r@   Úfs   &&   r   Ú	_get_sizeÚ_BinaryPlistParser._get_sizeø  sc   € à�SŒ=Ø—‘—‘˜aÓ  Õ# cÕ)ˆAØ�Q•ˆAØ”n QÕ'Õ'ˆAÜ—=’= §H¡H§M¡M°!Ó$4Ó5°aÕ8Ð8àˆr   c                ó  € \        V\        4      pV P                  P                  V4      p \	        V4      V8w  d   \
        hW!8X  d   V# \        W!V,
          4      pW0P                  P                  V4      ,          pW$,          pK\  )T)ÚminÚ_MIN_READ_BUF_SIZEr>  rB  r;   r   )r   ÚsizeÚcursizer   Údeltas   &&   r   Ú_readÚ_BinaryPlistParser._read  sk   € Ü�dÔ.Ó/ˆØ�x‰x�}‰}˜WÓ%ˆØÜ�4‹y˜GÔ#Ü*Ð*ØŒØ�Ü˜¨¥Ó0ˆEØ—H‘H—M‘M %Ó(Õ(ˆDØÕŠGr   c                ón  aa€ V P                  SV,          4      oS\        9   d(   \        P                  ! R V \        S,           2S4      # S'       g   \	        4       h\
        ;QJ d*    . VV3R l\        ^ SV,          S4       4       F  NK  	  5# ! VV3R l\        ^ SV,          S4       4       4      # )rj   c              3   ób   <"  € T F$  p\         P                  SWS,            R 4      x € K&  	  R# 5i)ÚbigN)r   Ú
from_bytes)Ú.0rD   r   r^  s   & €€r   Ú	<genexpr>Ú0_BinaryPlistParser._read_ints.<locals>.<genexpr>  s/   øé € ð <Ù":˜Qô Ÿ™¨¨Q°DµÐ(9¸5×AÐAÛ":ùs   ƒ,/)ra  rV  rC  rD  r   r  r:   )r   Únr^  r   s   &&f@r   rF  Ú_BinaryPlistParser._read_ints  s—   ù€ Ø�z‰z˜$ �(Ó#ˆØ”>Ô!Ü—=’= 1 Q C¬°tÕ(<Ð'=Ð!>ÀÓEÐEçÜ*Ó,Ð,ß”5õ <Ü"'¨¨4°!­8°TÔ":ó<—5ð <�5õ <Ü"'¨¨4°!­8°TÔ":ó<ó <ð <r   c                ó8   € V P                  WP                  4      # r   )rF  rE  )r   rj  s   &&r   Ú
_read_refsÚ_BinaryPlistParser._read_refs  s   € Ø�‰˜q§.¡.Ó1Ð1r   c                ór  € V P                   V,          pV\        Jd   V# V P                  V,          pV P                  P	                  V4       V P                  P                  ^4      ^ ,          pV^ð,          V^,          reV^ 8X  d   RpEM„V^8X  d   RpEMyV^	8X  d   RpEMnV^8X  d   RpEMcV^8X  d>   \        P                  V P                  P                  ^V,          4      RV^8¬  R7      pEMV^"8X  d:   \        P                  ! RV P                  P                  ^4      4      ^ ,          pEMßV^#8X  d:   \        P                  ! RV P                  P                  ^4      4      ^ ,          pEMŸV^38X  d«   \        P                  ! RV P                  P                  ^4      4      ^ ,          pV P                  '       d*   \        P                  ! R	^^\        P                  R
7      pM\        P                  ! R	^^4      pV\        P                  ! VR7      ,           pEMîV^@8X  d%   V P                  V4      p	V P                  V	4      pEMÃV^P8X  d6   V P                  V4      p	V P                  V	4      p
V
P!                  R4      pEM‡V^`8X  d=   V P                  V4      ^,          p	V P                  V	4      p
V
P!                  R4      pEMDV^€8X  dA   \#        \        P                  V P                  P                  ^V,           4      R4      4      pMýV^ 8X  d]   V P                  V4      p	V P%                  V	4      p. pW P                   V&   V F#  pVP'                  V P)                  V4      4       K%  	  MšV^Ð8X  dŠ   V P                  V4      p	V P%                  V	4      pV P%                  V	4      pV P+                  4       pW P                   V&    \-        WÛ4       F'  w  rïV P)                  V4      W P)                  V4      &   K)  	  M
\1        4       hW P                   V&   V#   \.         d    \1        4       hi ; i)z`
read the object by reference.

May recursively read sub-objects (content of an array/dict/set)
NFTr   re  ©Úsignedz>fz>déÑ  ©rO   )Úsecondsr   úutf-16be)rI  rH  rG  r>  r?  rB  r   rf  rC  rD  r:  rX   rY   Ú	timedeltarY  ra  r%  r   rm  r<   rJ  rw   Úzipr   r   )r   ÚrefÚresultÚoffsetÚtokenÚtokenHrW  rX  Úepochr@   r   Úobj_refsÚxÚkey_refsÚkÚos   &&              r   rJ  Ú_BinaryPlistParser._read_object  sY  € ð —‘˜sÕ#ˆØœÓ#ØˆMà×%Ñ% cÕ*ˆØ�‰�‰�fÔØ—‘—‘˜aÓ  Õ#ˆØ � u¨t¥|�à�DŒ=ØŠFà�dŒ]ØŠFà�dŒ]ØŠFð
 �dŒ]ØŠFà�tŒ^Ü—^‘^ D§H¡H§M¡M°!°vµ+Ó$>Ø$)°&¸A±+ð $ó ?ŠFð �dŒ]Ü—]’] 4¨¯©¯©°qÓ)9Ó:¸1Õ=ŠFà�dŒ]Ü—]’] 4¨¯©¯©°qÓ)9Ó:¸1Õ=ŠFà�dŒ]Ü—’˜d D§H¡H§M¡M°!Ó$4Ó5°aÕ8ˆAð ×!×!Ð!Ü ×)Ò)¨$°°1¼X¿\¹\ÔJ‘ä ×)Ò)¨$°°1Ó5�ØœX×/Ò/¸Ô:Õ:ŠFà�tŒ^Ø—‘˜vÓ&ˆAØ—Z‘Z “]ŠFà�tŒ^Ø—‘˜vÓ&ˆAØ—:‘:˜a“=ˆDØ—[‘[ Ó)ŠFà�tŒ^Ø—‘˜vÓ&¨Õ*ˆAØ—:‘:˜a“=ˆDØ—[‘[ Ó,ŠFà�tŒ^äœŸ™¨¯©¯©°a¸&µjÓ(AÀ5ÓIÓJ‰Fà�tŒ^Ø—‘˜vÓ&ˆAØ—‘ qÓ)ˆHØˆFØ!'�M‰M˜#ÑÛ�Ø—‘˜d×/Ñ/°Ó2Ö3ò ð �tŒ^Ø—‘˜vÓ&ˆAØ—‘ qÓ)ˆHØ—‘ qÓ)ˆHØ—_‘_Ó&ˆFØ!'�M‰M˜#Ñð-Ü Ö3‘D�AØ37×3DÑ3DÀQÓ3G�F×,Ñ,¨QÓ/Ó0ò 4ô
 'Ó(Ð(à#�‰�cÑØˆøô ô -Ü*Ó,Ð,ð-ús   Ï6P  Ð P6)r:  rw   r>  rG  rI  rE  NrØ   )r!   r1   r2   r3   Ú__doc__r   rˆ   rY  ra  rF  rm  rJ  r4   r5   r6   s   @r   r8  r8  Ó  s4   ø‡ € ñô,ò)ò2ò
ò<ò2÷að ar   r8  c                 ó<   € V R8  d   ^# V R8  d   ^# V R8  d   ^# ^# )r³   é   é   ì        r2  )Úcounts   &r   Ú_count_to_sizerŠ  ~  s%   € Øˆv„~Ùà	�ŒÙà	�ŒÙñ r   c                   óH   a € ] tR tRt o R
R ltR tR tR tR tR t	Rt
V tR	# )Ú_BinaryPlistWriteri�  c                ó6   € Wn         W n        W0n        W@n        R # r   )r>  r÷   rø   rx   )r   rN  rú   rû   rZ   s   &&&&&r   r   Ú_BinaryPlistWriter.__init__Ž  s   € ØŒØ#ŒØ!ŒØ-Ör   c                ó  € . V n         / V n        / V n        V P                  V4       \	        V P                   4      p^ .V,          V n        \        V4      V n        \        V P                  ,          V n	        V P                  P                  R4       V P                    F  pV P                  V4       K  	  V P                  V4      pV P                  P                  4       p\        V4      pR\        V,          V,          ,           pV P                  P                  \        P                   ! V.V P
                  O5!  4       ^ pW†V P                  VWE3p	V P                  P                  \        P                   ! R.V	O5!  4       R# )rç   ó   bplist00rj   z	>5xBBBQQQN)Ú_objlistÚ	_objtableÚ_objidtableÚ_flattenr;   rG  rŠ  rE  rV  Ú_ref_formatr>  rï   Ú_write_objectÚ
_getrefnumÚtellrC  Úpack)
r   r�   rQ  ÚobjrR  rS  rP  Úoffset_formatÚsort_versionrO  s
   &&        r   rï   Ú_BinaryPlistWriter.write”  s4  € ð ˆŒð ˆŒØˆÔð 	�‰�eÔô ˜$Ÿ-™-Ó(ˆØ !˜s ;�ˆÔÜ'¨Ó4ˆŒä)¨$¯.©.Õ9ˆÔð 	�‰�‰�{Ô#ð —=”=ˆCØ×Ñ˜sÖ#ñ !ð —_‘_ UÓ+ˆ
Ø"Ÿh™hŸm™m›oÐÜ$Ð%8Ó9ˆØœn¨[Õ9¸KÕGÕGˆØ�‰�‰”v—{’{ =ÐH°4×3GÑ3GÓHÔIð ˆà t§~¡~°{Øð
ˆð 	�‰�‰”v—{’{ ;Ð9°Ó9Ö:r   c                ó¸  € \        V\        4      '       d    \        V4      V3V P                  9   d   R # M\	        V4      V P
                  9   d   R # \        V P                  4      pV P                  P                  V4       \        V\        4      '       d   W P                  \        V4      V3&   MW P
                  \	        V4      &   \        V\        4      '       dÄ   . p. pVP                  4       pV P                  '       d   \        V4      pV F\  w  rg\        V\        4      '       g    V P                  '       d   K/  \        R4      hVP                  V4       VP                  V4       K^  	  \         P"                  ! W44       F  pV P%                  V4       K  	  R # \        V\&        \(        34      '       d   V F  pV P%                  V4       K  	  R # R # )Nr  )r   Ú_scalarsr  r’  Úidr“  r;   r‘  r<   r¡   r  r÷   r  rI   rø   r   Ú	itertoolsÚchainr”  r£   r  )	r   r�   ÚrefnumÚkeysÚvaluesr  r�  Úvr‚  s	   &&       r   r”  Ú_BinaryPlistWriter._flattenÁ  sh  € ô �eœX×&Ò&Ü�U“˜UÐ# t§~¡~Ô5Ùð 6ô �‹Y˜$×*Ñ*Ô*Ùô �T—]‘]Ó#ˆØ�‰×Ñ˜UÔ#Ü�eœX×&Ò&Ø39�N‰NœD ›K¨Ð/Ò0à*0×ÑœR ›YÑ'ô �eœT×"Ò"ØˆDØˆFØ—K‘K“MˆEØ��ˆÜ˜u›�ã‘�Ü! !¤S×)Ò)Ø—~—~�~Ù Ü#Ð$:Ó;Ð;Ø—‘˜A”Ø—‘˜aÖ ñ ô —_’_ TÖ2�Ø—‘˜aÖ ó 3ô ˜¤¤e˜}×-Ò-Û�Ø—‘˜aÖ ó ñ .r   c                ó¢   € \        V\        4      '       d   V P                  \        V4      V3,          # V P                  \        V4      ,          # r   )r   rŸ  r’  r  r“  r   r¤   s   &&r   r—  Ú_BinaryPlistWriter._getrefnumë  s<   € Ü�eœX×&Ò&Ø—>‘>¤4¨£;°Ð"6Õ7Ð7à×#Ñ#¤B u£IÕ.Ð.r   c                ó‚  € V^8  d9   V P                   P                  \        P                  ! RW,          4      4       R# VR8  d<   V P                   P                  \        P                  ! RV^,          ^V4      4       R# VR8  d<   V P                   P                  \        P                  ! RV^,          ^V4      4       R# VR	8  d<   V P                   P                  \        P                  ! RV^,          ^V4      4       R# V P                   P                  \        P                  ! RV^,          ^V4      4       R# )
é   z>Bz>BBBz>BBHz>BBLz>BBQNr†  r‡  rˆ  )r>  rï   rC  r™  )r   r{  r^  s   &&&r   Ú_write_sizeÚ_BinaryPlistWriter._write_sizeñ  sÉ   € Ø�"Œ9Ø�H‰H�N‰Nœ6Ÿ;š; t¨U­\Ó:Ö;à�FŒ]Ø�H‰H�N‰Nœ6Ÿ;š; v¨u°s­{¸DÀ$ÓGÖHà�GŒ^Ø�H‰H�N‰Nœ6Ÿ;š; v¨u°s­{¸DÀ$ÓGÖHà�GŒ^Ø�H‰H�N‰Nœ6Ÿ;š; v¨u°s­{¸DÀ$ÓGÖHð �H‰H�N‰Nœ6Ÿ;š; v¨u°s­{¸DÀ$ÓGÖHr   c           	     ó  € V P                  V4      pV P                  P                  4       V P                  V&   Vf   V P                  P	                  R4       R # VRJ d   V P                  P	                  R4       R # VRJ d   V P                  P	                  R4       R # \        V\        4      '       Edl   V^ 8  d5    V P                  P	                  \        P                  ! R^V4      4       R # VR8  d4   V P                  P	                  \        P                  ! R^V4      4       R # VR8  d4   V P                  P	                  \        P                  ! R^V4      4       R # VR8  d4   V P                  P	                  \        P                  ! R	^V4      4       R # VR8  d4   V P                  P	                  \        P                  ! R
^V4      4       R # VR8  d7   V P                  P	                  RVP                  ^RRR7      ,           4       R # \        V4      h\        V\        4      '       d4   V P                  P	                  \        P                  ! R^#V4      4       R # \        V\        P                  4      '       dÒ   V P                  '       d`   VP                  \        P                   4      pV\        P                  ! R^^\        P                   R7      ,
          pVP#                  4       pM-V\        P                  ! R^^4      ,
          P#                  4       pV P                  P	                  \        P                  ! R^3V4      4       R # \        V\$        \&        34      '       d9   V P)                  ^@\+        V4      4       V P                  P	                  V4       R # \        V\,        4      '       dK    VP/                  R4      pV P)                  ^P\+        V4      4       V P                  P	                  V4       R # \        V\2        4      '       Ed8   VP4                  ^ 8  d   \7        R4      hVP4                  R8  d4   V P                  P	                  \        P                  ! R^€V4      4       R # VP4                  R8  d4   V P                  P	                  \        P                  ! R^�V4      4       R # VP4                  R8  d4   V P                  P	                  \        P                  ! R	^ƒV4      4       R # VP4                  R8  d4   V P                  P	                  \        P                  ! R
^‡V4      4       R # \        V4      h\        V\8        \:        34      '       dˆ   V Uu. uF  qpP                  V4      NK  	  pp\+        V4      p	V P)                  ^ V	4       V P                  P	                  \        P                  ! RV P<                  V	,          ,           .VO5!  4       R # \        V\>        4      '       Edq   . . rºV P@                  '       d   \C        VPE                  4       4      pMVPE                  4       pV Fz  w  rÞ\        V\,        4      '       g    V PF                  '       d   K/  \I        R4      hV
PK                  V P                  V4      4       VPK                  V P                  V4      4       K|  	  \+        V
4      p	V P)                  ^ÐV	4       V P                  P	                  \        P                  ! RV P<                  V	,          ,           .V
O5!  4       V P                  P	                  \        P                  ! RV P<                  V	,          ,           .VO5!  4       R # \I        V4      h  \        P                   d    \        T4      R hi ; i  \0         d8    TP/                  R4      pT P)                  ^`\+        T4      ^,          4        ELi ; iu upi )Nó    Fó   Tr  z>Bqz>BBz>BHz>BLz>BQó   re  rp  z>Bdrr  rs  r   ru  r
   rj   r  r†  r‡  rˆ  l            r   )&r—  r>  r˜  rG  rï   r   r   rC  r™  rM  r  Úto_bytesrÌ   rX   rx   rb   rY   Útotal_secondsr	  r
  r¬  r;   rI   rK   ÚUnicodeEncodeErrorr   r   r   r£   r  r•  r¡   r÷   r  r  rø   r   r<   )r   r�   rx  Údtrz  rX  Útr‚  Úrefsr@   ÚkeyRefsÚvalRefsÚ	rootItemsr�  r¦  s   &&             r   r–  Ú _BinaryPlistWriter._write_object  sk  € Ø�o‰o˜eÓ$ˆØ$(§H¡H§M¡M£Oˆ×Ñ˜SÑ!ØŠ=Ø�H‰H�N‰N˜7Ö#à�e‹^Ø�H‰H�N‰N˜7Ö#à�d‹]Ø�H‰H�N‰N˜7Ö#ä˜œs×#Ó#Ø�qŒyð9Ø—H‘H—N‘N¤6§;¢;¨u°d¸EÓ#BÖCð ˜”Ø—‘—‘œvŸ{š{¨5°$¸Ó>Ö?Ø˜”Ø—‘—‘œvŸ{š{¨5°$¸Ó>Ö?Ø˜”Ø—‘—‘œvŸ{š{¨5°$¸Ó>Ö?Ø˜”Ø—‘—‘œvŸ{š{¨5°$¸Ó>Ö?Ø˜”Ø—‘—‘˜w¨¯©¸¸EÈ$¨Ó)OÕOÖPä# EÓ*Ð*ä˜œu×%Ò%Ø�H‰H�N‰Nœ6Ÿ;š; u¨d°EÓ:Ö;ä˜œx×0Ñ0×1Ò1Ø×#×#Ð#Ø×%Ñ%¤h§l¡lÓ3�Øœh×/Ò/°°a¸Ä8Ç<Á<ÔPÕP�Ø×(Ñ(Ó*‘àœX×.Ò.¨t°Q¸Ó:Õ:×IÑIÓK�Ø�H‰H�N‰Nœ6Ÿ;š; u¨d°AÓ6Ö7ä˜¤¤yÐ1×2Ò2Ø×Ñ˜T¤3 u£:Ô.Ø�H‰H�N‰N˜5Ö!ä˜œs×#Ò#ð4Ø—L‘L Ó)�Ø× Ñ  ¤s¨5£zÔ2ð
 �H‰H�N‰N˜1Öä˜œs×#Ó#Ø�z‰z˜AŒ~Ü Ð!8Ó9Ð9Ø—‘˜fÔ$Ø—‘—‘œvŸ{š{¨5°$¸Ó>Ö?Ø—‘˜gÔ%Ø—‘—‘œvŸ{š{¨5°$¸Ó>Ö?Ø—‘˜gÔ%Ø—‘—‘œvŸ{š{¨5°$¸Ó>Ö?Ø—‘˜gÔ%Ø—‘—‘œvŸ{š{¨5°$¸Ó>Ö?ä# EÓ*Ð*ä˜¤¤e˜}×-Ò-Ù05Ó6±¨1—O‘O AÖ&±ˆDÐ6Ü�D“	ˆAØ×Ñ˜T 1Ô%Ø�H‰H�N‰Nœ6Ÿ;š; s¨T×-=Ñ-=ÀÕ-AÕ'AÐIÀDÓIÖJä˜œt×$Ó$Ø! 2�Wà��ˆÜ" 5§;¡;£=Ó1‘	à!ŸK™K›M�	ã!‘�Ü! !¤S×)Ò)Ø—~—~�~Ù Ü#Ð$:Ó;Ð;Ø—‘˜tŸ™¨qÓ1Ô2Ø—‘˜tŸ™¨qÓ1Ö2ñ "ô �G“ˆAØ×Ñ˜T 1Ô%Ø�H‰H�N‰Nœ6Ÿ;š; s¨T×-=Ñ-=ÀÕ-AÕ'AÐLÀGÓLÔMØ�H‰H�N‰Nœ6Ÿ;š; s¨T×-=Ñ-=ÀÕ-AÕ'AÐLÀGÓLÖMô ˜EÓ"Ð"øôg —|‘|ô 9Ü'¨Ó.°DÐ8ð9ûôF &ô 4Ø—L‘L Ó,�Ø× Ñ  ¤s¨1£v°¥{×3ð4üò* 7s$   Â?1^ Ï,^8 Õ>_=Þ"^5Þ8>_:ß9_:)
rx   r>  rG  r“  r‘  r’  r•  rE  rø   r÷   NrØ   )r!   r1   r2   r3   r   rï   r”  r—  r¬  r–  r4   r5   r6   s   @r   rŒ  rŒ  �  s-   ø‡ € ô.ò+;òZ(!òT/òI÷ c#ð c#r   rŒ  c                 ó   € V R ,          R8H  # ):Né   Nr�  r2  )r&  s   &r   Ú_is_fmt_binaryr¾  g  s   € Ø�"�:˜Ñ$Ð$r   )Údetectr}   ÚwriterÚfmtrz   rZ   Fc               ó4  € Vfh   V P                  ^ 4      pV P                  ^ 4       \        P                  4        F#  pVR,          ! V4      '       g   K  VR,          p M 	  \	        4       h\        V,          R,          pV! W#R7      pVP                  V 4      # )z‡Read a .plist file. 'fp' should be a readable and binary file object.
Return the unpacked root object (which usually is a dictionary).
r¿  r}   )rz   rZ   )rB  r?  Ú_FORMATSr¥  r   rˆ   )rN  rÁ  rz   rZ   r&  ÚinfoÚPÚps   &$$$    r   ÚloadrÇ  }  s€   € ð ‚{Ø—‘˜“ˆØ
�‰�Œ
Ü—O‘OÖ%ˆDØ�HŽ~˜f×%Ô%Ø˜•N�Ùñ &ô 'Ó(Ð(ô �S�M˜(Õ#ˆá	�IÔ=€AØ�7‰7�2‹;Ðr   c               óª   € \        V \        4      '       d'   V\        8X  d   \        R4      hV P	                  4       p \        V 4      p\        WAW#R7      # )ziRead a .plist file from a bytes object.
Return the unpacked root object (which usually is a dictionary).
z6value must be bytes-like object when fmt is FMT_BINARY)rÁ  rz   rZ   )r   rI   Ú
FMT_BINARYr   rK   r   rÇ  )r�   rÁ  rz   rZ   rN  s   &$$$ r   ÚloadsrÊ  “  sL   € ô �%œ×ÒØ”*ÔÜð )ó *ð *à—‘“ˆÜ	�‹€BÜ� yÔPÐPr   rú   Trû   c               ó–   € V\         9  d   \        RV: 24      h\         V,          R,          ! WVVR7      pVP                  V 4       R# )zOWrite 'value' to a .plist file. 'fp' should be a writable,
binary file object.
zUnsupported format: rÀ  )rú   rû   rZ   N)rÃ  r   rï   )r�   rN  rÁ  rú   rû   rZ   rÀ  s   &&$$$$ r   ÚdumprÌ     sA   € ð
 ”(ÔÝ²3Ð8Ó9Ð9ä�c�]˜8Ö$ RÀxØ4BôD€Fà
‡L�L�Ör   c          	     óT   € \        4       p\        WWVVR7       VP                  4       # )z?Return a bytes object with the contents for a .plist file.
    )rÁ  rû   rú   rZ   )r   rÌ  Úgetvalue)r�   rÁ  rû   rú   rZ   rN  s   &$$$$ r   ÚdumpsrÏ  ­  s(   € ô 
‹€BÜˆ˜¸)Ø&õ(à�;‰;‹=Ðr   )r   ÚFMT_XMLrÉ  rÇ  rÌ  rÊ  rÏ  r   i   )éL   ):r„  Ú__all__r=   r!  rX   ÚenumÚior   r¡  r@  ÚrerC  Úxml.parsers.expatr   ÚEnumr!   r   ÚglobalsÚupdateÚ__members__r]  r   rö   Úcompilerk   rF   rL   ÚASCIIrU   r`   rd   rp   rr   rÚ   rô   r-  r   r   rV  ÚobjectrH  r8  rŠ  rI   r   rÌ   r	  rŸ  rŒ  r¾  rÐ  r¡   rÉ  rÃ  rÇ  rÊ  rÌ  rÏ  r2  r   r   Ú<module>rÞ     s  ðñ7òp€ó Û Û Û Ý Û Û 	Û 	Û Ý *ð �iŠi˜Ð';ÀHÔM€Ù ƒ	× Ñ �×(Ñ(Ô )ð Ð ÷ñ ðB€ð —*’*ðIóJ€ôò&ð �jŠjð  Xð  Z\÷  Zbñ  Zbó  c€ò#òò
÷mPñ mP÷`#ñ #ôL])�>ô ])ò@ôB+˜Jô +ð �S˜!˜S ! S¨!¨SÐ1€á‹X€
÷iñ iòVð ��e˜X×.Ñ.°Ð6€ôW#˜&ô W#òt%ð ‰TØØØôð
 ‘ØØ!Ø!ôð
€ð�Dð  Dð ¸ô ð,
Q˜ð 
Q¨ð 
Q¸Uô 
Qð
˜7ð 
¨dð 
¸Uð 
Øô
ð˜ð ¨%ð ¸4ð Øör   