+
    =l j„
  ã                   óò   € ^ RI t ^ RIt^ RIt^ RIHtHtHt ^ RIHtH	t	H
t
HtHt ]	P                  ! 4       t]P                  ! ]P                   ! ]4      4      t ! R R4      t ! R R4      t ! R R	]4      tR# )
é    N)ÚAnyÚDictÚOptional)ÚdefaultsÚevent_loggerÚ
exceptionsÚsystemÚutilc                   óÀ   a € ] tR t^t o ]P
                  R3V 3R lR llt]V 3R lR l4       t]V 3R lR l4       t	]R 4       t
V 3R	 lR
 ltV 3R lR ltR tRtV tR# )ÚUAFileTc                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )é   ÚnameÚ	directoryÚprivate)ÚstrÚbool)ÚformatÚ__classdict__s   "€Ú6/usr/lib/python3/dist-packages/uaclient/files/files.pyÚ__annotate__ÚUAFile.__annotate__   s.   ø€ ÷ 	Dñ 	Dáð	Dñ ð	Dñ ñ		Dó    c                óœ   € W n         Wn        W0n        \        P                  P                  V P                   V P                  4      V n        R # ©N)Ú
_directoryÚ
_file_nameÚ_is_privateÚosÚpathÚjoinÚ_path)Úselfr   r   r   s   &&&&r   Ú__init__ÚUAFile.__init__   s2   € ð $ŒØŒØ"ÔÜ—W‘W—\‘\ $§/¡/°4·?±?ÓCˆŽ
r   c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úreturn©r   )r   r   s   "€r   r   r      s   ø€ ÷ ñ ‘cñ r   c                ó   € V P                   # r   )r"   ©r#   s   &r   r    ÚUAFile.path   s   € à�z‰zÐr   c                ó    <€ V ^8„  d   QhRS[ /# r'   )r   )r   r   s   "€r   r   r      s   ø€ ÷  ñ  ™Dñ  r   c                ó   € V P                   # r   )r   r+   s   &r   Ú
is_privateÚUAFile.is_private   s   € à×ÑÐr   c                óT   € \         P                  P                  V P                  4      # r   )r   r    Úexistsr+   s   &r   Ú
is_presentÚUAFile.is_present    s   € ä�w‰w�~‰~˜dŸi™iÓ(Ð(r   c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úcontentr)   )r   r   s   "€r   r   r   $   s   ø€ ÷ 9ñ 9™Sñ 9r   c                óÐ  € V P                   '       d   \        P                  M\        P                  p \        P
                  P                  V P                  4      \        P                  8X  d$   \        P                  ! V P                  R R7       M!\        P                  ! V P                  4        \        P                  ! V P
                  W4       R#   \         d     L0i ; i)iÀ  )ÚmodeN)r/   r   ÚROOT_READABLE_MODEÚWORLD_READABLE_MODEr   r    Úbasenamer   ÚPRIVATE_SUBDIRÚmakedirsÚOSErrorr	   Ú
write_file)r#   r7   Ú	file_modes   && r   ÚwriteÚUAFile.write$   s˜   € ð ��ˆô ×'Ò'ä×-Ñ-ð 	ð	Ü�w‰w×Ñ §¡Ó0´H×4KÑ4KÔKÜ—’˜DŸO™O°%Ö8ä—’˜DŸO™OÕ,ô 	×Ò˜$Ÿ)™) WÖ8øô ô 	Ùð	ús   ´AC Â C ÃC%Ã$C%c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r'   )r   r   )r   r   s   "€r   r   r   5   s   ø€ ÷ ñ ‘h™s•mñ r   c                ó°   € R p \         P                  ! V P                  4      pV#   \         d%    \        P                  RT P                  4        T# i ; i)Nz(Tried to load %s but file does not exist)r	   Ú	load_filer    ÚFileNotFoundErrorÚLOGÚdebug©r#   r7   s   & r   ÚreadÚUAFile.read5   sS   € Øˆð	MÜ×&Ò& t§y¡yÓ1ˆGð ˆøô !ô 	MÜ�I‰IÐ@À$Ç)Á)ÕLØˆð	Mús   „ & ¦+AÁAc                óF   € \         P                  ! V P                  4       R # r   )r	   Úensure_file_absentr    r+   s   &r   ÚdeleteÚUAFile.delete=   s   € Ü×!Ò! $§)¡)Ö,r   )r   r   r   r"   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   ÚDEFAULT_DATA_DIRr$   Úpropertyr    r/   r3   rB   rK   rO   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      sy   ø‡ € ð "×2Ñ2Ø÷		Dò 	Dð ÷ó ðð ÷ ó ð ð ñ)ó ð)÷9ð 9÷"ð ÷-ð -r   r   c                   ól   a € ] tR t^At o V 3R lR ltV 3R lR ltV 3R lR ltR t]R 4       t	R	t
V tR
# )ÚProJSONFilec                ó    <€ V ^8„  d   QhRS[ /# )r   Úpro_file)r   )r   r   s   "€r   r   ÚProJSONFile.__annotate__B   s   ø€ ÷ !ñ !áñ!r   c                ó   € Wn         R # r   ©r]   )r#   r]   s   &&r   r$   ÚProJSONFile.__init__B   s	   € ð !Žr   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r6   )r   r   r   )r   r   s   "€r   r   r^   H   s   ø€ ÷ 
ñ 
™T¡#¡s (�^ñ 
r   c                ó†   € V P                   P                  \        P                  ! V\        P
                  R 7      R7       R# )©Úcls)r7   N)r]   rB   ÚjsonÚdumpsr
   ÚDatetimeAwareJSONEncoderrJ   s   &&r   rB   ÚProJSONFile.writeH   s-   € Ø�‰×ÑÜ—J’J˜w¬D×,IÑ,IÔJð 	ö 	
r   c                óF   <€ V ^8„  d   QhRS[ S[S[S[3,          ,          /# r'   )r   r   r   r   )r   r   s   "€r   r   r^   M   s!   ø€ ÷ ñ ‘h™t¡C© H�~Õ.ñ r   c                óJ  € V P                   P                  4       pV'       d(    \        P                  ! V\        P
                  R 7      # R#   \        P                   dB   p\        P                  ! T P                   P                  R\        T4      ,           R7      hRp?ii ; i)rd   Ú
)ÚsourceÚoutN)r]   rK   rf   Úloadsr
   ÚDatetimeAwareJSONDecoderÚJSONDecodeErrorr   ÚInvalidJsonr    r   )r#   r7   Úes   &  r   rK   ÚProJSONFile.readM   sz   € Ø—-‘-×$Ñ$Ó&ˆçðÜ—z’z '¬t×/LÑ/LÔMÐMñ øô ×'Ñ'ô Ü ×,Ò,ØŸ=™=×-Ñ-°4¼#¸a»&µ=ôð ûðús   ¤%A ÁB"Á!<BÂB"c                ó6   € V P                   P                  4       # r   )r]   rO   r+   s   &r   rO   ÚProJSONFile.deleteZ   s   € Ø�}‰}×#Ñ#Ó%Ð%r   c                ó.   € V P                   P                  # r   )r]   r3   r+   s   &r   r3   ÚProJSONFile.is_present]   s   € à�}‰}×'Ñ'Ð'r   r`   N)rQ   rR   rS   rT   r$   rB   rK   rO   rV   r3   rW   rX   rY   s   @r   r[   r[   A   s<   ø‡ € ÷!ð !÷
ð 
÷
ð ò&ð ñ(ó ö(r   r[   c                   ó>   a a€ ] tR t^bt oV3R lV 3R lltRtVtV ;t# )ÚUserCacheFilec                ó    <€ V ^8„  d   QhRS[ /# )r   r   r)   )r   r   s   "€r   r   ÚUserCacheFile.__annotate__c   s   ø€ ÷ 
ñ 
™Sñ 
r   c                óR   <€ \         SV `  V\        P                  ! 4       R R7       R# )F)r   r   N)Úsuperr$   r	   Úget_user_cache_dir)r#   r   Ú	__class__s   &&€r   r$   ÚUserCacheFile.__init__c   s%   ø€ Ü‰ÑØœF×5Ò5Ó7Àð 	ö 	
r   © )rQ   rR   rS   rT   r$   rW   rX   Ú__classcell__)r€   r   s   @@r   rz   rz   b   s   ù‡ € ÷
÷ 
ó 
r   rz   )rf   Úloggingr   Útypingr   r   r   Úuaclientr   r   r   r	   r
   Úget_event_loggerÚeventÚ	getLoggerÚreplace_top_level_logger_namerQ   rH   r   r[   rz   r‚   r   r   Ú<module>r‹      se   ðÛ Û Û 	ß &Ñ &ç EÕ Eà×%Ò%Ó'€Ø×Ò˜×:Ò:¸8ÓDÓE€÷2-ñ 2-÷j(ñ (ôB
�Fö 
r   