+
    ˜qgj,  ã                   ó8  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RIH	t	H
t
 Rt]P                  ! ]4      t]	P                  ! R4      R 4       t]	P                  ! R4      R 4       t]R	R
3R lt]R	R
3R ltR t]	P                  ! R4      R 4       t]3R ltR# )é    N)Ú	b64decodeÚ	b64encode)ÚperformanceÚutili¤  zBase64 decodingc                ób   € \        V 4      p VP                  R4      #   \         d    Tu # i ; i)zbase64 decode data

:param source: a bytes or str to decode
:return: base64 as a decoded str if utf-8 encoded, otherwise bytes
úutf-8)r   ÚdecodeÚUnicodeDecodeError)ÚsourceÚdecodeds   & Ú9/usr/lib/python3/dist-packages/cloudinit/atomic_helper.pyÚb64dr      s6   € ô ˜Ó€GðØ�~‰~˜gÓ&Ð&øÜô ØŠðús   � ž.­.zBase64 encodingc                ó„   € \        V \        4      '       g   V P                  R4      p \        V 4      P	                  R4      # )zXbase64 encode data

:param source: a bytes or str to decode
:return: base64 encoded str
r   )Ú
isinstanceÚbytesÚencoder   r	   )r   s   &r   Úb64er      s5   € ô �fœe×$Ò$Ø—‘˜wÓ'ˆÜ�VÓ×#Ñ# GÓ,Ð,ó    ÚwbFc           	     óœ   € \         P                  ! RV  24      ;_uu_ 4        \        WW#V4      uuRRR4       #   + '       g   i     R# ; i)zCopen filename in mode omode, write content, set permissions to modezWriting N)r   ÚTimedÚ_write_file)ÚfilenameÚcontentÚmodeÚomodeÚpreserve_modes   &&&&&r   Ú
write_filer   *   s7   € ô
 
×	Ò	˜X h ZÐ0×	1Õ	1Ü˜8¨d¸=ÓI÷ 
2×	1×	1Ó	1ús	   ¢:ºA	c           
      óÚ  € V'       d8    \         P                  ! V 4      p\        P                  ! VP                  4      pR p \         P
                  P                  V 4      p\        P                  ! V4       \        P                  ! VRVR7      p\        P                  RV VP                  VV\        V4      4       VP                  V4       VP!                  4        \         P"                  ! VP                  V4       \         P$                  ! VP                  V 4       R #   \         d     Lði ; i  \&         d,   pTe!   \         P(                  ! TP                  4       ThR p?ii ; i)NF)ÚdirÚdeleter   zOAtomically writing to file %s (via temporary file %s) - %s: [%o] %d bytes/chars)ÚosÚstatÚS_IMODEÚst_modeÚOSErrorÚpathÚdirnamer   Ú
ensure_dirÚtempfileÚNamedTemporaryFileÚLOGÚdebugÚnameÚlenÚwriteÚcloseÚchmodÚrenameÚ	ExceptionÚunlink)	r   r   r   r   r   Ú	file_statÚtfr(   Úes	   &&&&&    r   r   r   3   s  € ÷ ð	ÜŸš Ó)ˆIÜ—<’< 	× 1Ñ 1Ó2ˆDð 
€BðÜ—'‘'—/‘/ (Ó+ˆÜ�Š˜Ô Ü×(Ò(¨W¸UÈÔOˆÜ�	‰	ðàØ�G‰GØØÜ�‹Lô	
ð 	�‰�ÔØ
�‰Œ
Ü
�Š�—‘˜$ÔÜ
�	Š	�"—'‘'˜8Ö$øô) ô 	Ùð	ûô* ô ØŠ>Ü�IŠI�b—g‘gÔØˆûðús*   Š6D# ÁCD4 Ä#D1Ä0D1Ä4E*Ä?&E%Å%E*c                óŽ   €  RP                  \        V 4      4      #   \         d    RP                  \        T 4      4      u # i ; i)z1Handler for types which aren't json serializable.z
ci-b64:{0}z)Warning: redacted unserializable type {0})Úformatr   ÚAttributeErrorÚtype)Ú_objs   &r   Újson_serialize_defaultr>   U   sC   € ðNØ×"Ñ"¤4¨£:Ó.Ð.øÜô NØ:×AÑAÄ$ÀtÃ*ÓMÒMðNús   ‚ œ%AÁAzDumping jsonc                ó@   € \         P                  ! V ^RR\        R7      # )z%Return data in nicely formatted json.T)ÚindentÚ	sort_keysÚ
separatorsÚdefault)Ú,z: )ÚjsonÚdumpsr>   )Údatas   &r   Ú
json_dumpsrH   ]   s$   € ô �:Š:ØØØØÜ&ôð r   c                 ó@   € \        V \        V4      R ,           RVR7      # )Ú
Úw)r   r   )r   rH   )r   rG   r   s   &&&r   Ú
write_jsonrL   i   s%   € äØÜ�4Ó˜4ÕØØô	ð r   )rE   Úloggingr"   r#   r*   Úbase64r   r   Ú	cloudinitr   r   Ú
_DEF_PERMSÚ	getLoggerÚ__name__r,   Útimedr   r   r   r   r>   rH   rL   © r   r   Ú<module>rU      s¾   ðó Û Û 	Û Û ß 'ç 'à€
Ø×Ò˜Ó!€ð ×ÒÐ$Ó%ñ
ó &ð
ð ×ÒÐ$Ó%ñ-ó &ð-ð '¨dÀ%ôJð '¨dÀ%ôòDNð ×Ò�>Ó"ñó #ðð %/ö r   