+
    }n j"  ã                   óÎ  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	t	^ RI
HtHtHtHt ^ RIHtHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHtHtHtH t  ^ R	I!H"t"H#t#H$t$ ]PJ                  ! ]PL                  ! ]'4      4      t( ! R
 R]4      t) ! R R]4      t*R t+R R lt,R R lt-R R lt.R R lt/R R lt0]R R l4       t1R R lt2R R lt3R R  lt4R! R" lt5R# )#é    N)ÚListÚOptional)ÚdefaultsÚmessagesÚsystemÚutil)ÚContractExpiryStatusÚ_is_attached)Úensure_apt_pkg_initÚget_pkg_versionÚversion_compare)Úget_cloud_type©ÚUAConfig)ÚBoolDataValueÚ
DataObjectÚDatetimeDataValueÚFieldÚStringDataValueÚ	data_list)Úmachine_tokenÚnoticesÚstate_filesc                   óî   a € ] tR t^ t o ]! R]! ]4      RR7      ]! R]! ]4      RR7      ]! R]RR7      ]! R]! ]4      RR7      ]! R]! ]! ]4      4      RR7      .tRRRRRRRRRR/V 3R	 lR
 llt	Rt
V tR# )ÚAptNewsMessageSelectorsÚ	codenamesF©ÚrequiredÚcloudsÚproÚarchitecturesÚpackagesNc                óØ   <€ V ^8„  d   QhRS[ S[S[,          ,          RS[ S[S[,          ,          RS[ S[,          RS[ S[S[,          ,          RS[ S[S[S[,          ,          ,          /# )é   r   r   r    r!   r"   )r   r   ÚstrÚbool)ÚformatÚ__classdict__s   "€Ú3/usr/lib/python3/dist-packages/uaclient/apt_news.pyÚ__annotate__Ú$AptNewsMessageSelectors.__annotate__+   sk   ø€ ÷ !ñ !ñ ™D¡�IÕ&ð!ñ ™™c�Õ#ð	!ñ
 ‘d�^ð!ñ  ¡¡S¥	Õ*ð!ñ ™4¡¡S¥	�?Õ+ñ!ó    c               óB   € Wn         W n        W0n        W@n        WPn        R # ©N)r   r   r    r!   r"   )Úselfr   r   r    r!   r"   s   &$$$$$r)   Ú__init__Ú AptNewsMessageSelectors.__init__+   s   € ð #ŒØŒØŒØ*ÔØ Žr,   )r!   r   r   r"   r    )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   Úfieldsr0   Ú__static_attributes__Ú__classdictcell__©r(   s   @r)   r   r       s¥   ø‡ € áˆk™9 _Ó5ÀÔFÙˆh™	 /Ó2¸UÔCÙˆe�]¨UÔ3Ùˆo™y¨Ó9ÀEÔJÙØ™	¡)¨OÓ"<Ó=Èô	
ð€Fð!ð *.ð!ð '+ð	!ð
 #ð!ð .2ð!ð /3÷!÷ !ð !r,   r   c            	       ó–   a € ] tR t^;t o ]! R]4      ]! R]RR7      ]! R]RR7      ]! R]! ]4      4      .t	RRRR/V 3R lR	 llt
R
tV tR# )ÚAptNewsMessageÚbeginÚendFr   Ú	selectorsÚlinesNc          	      óŠ   <€ V ^8„  d   QhRS[ P                   RS[S[ P                   ,          RS[S[,          RS[S[,          /# )r$   r<   r=   r>   r?   )Údatetimer   r   r   r%   )r'   r(   s   "€r)   r*   ÚAptNewsMessage.__annotate__C   sP   ø€ ÷ ñ ñ × Ñ ðñ ‘h×'Ñ'Õ(ð	ñ
 Ñ3Õ4ðñ ‘C�yñr,   c               ó6   € Wn         W n        W0n        W@n        R # r.   )r<   r=   r>   r?   )r/   r<   r=   r>   r?   s   &$$$$r)   r0   ÚAptNewsMessage.__init__C   s   € ð Œ
ØŒØ"ŒØŽ
r,   )r<   r=   r?   r>   )r2   r3   r4   r5   r   r   r   r   r   r6   r0   r7   r8   r9   s   @r)   r;   r;   ;   sc   ø‡ € áˆgÐ(Ó)ÙˆeÐ&°Ô7ÙˆkÐ2¸UÔCÙˆg‘y Ó1Ó2ð	€Fðð ,0ð	ð
 8<÷÷ ð r,   r;   c                 ó  €  V w  rp\        T4      pTf   R# \	        YC4      p\        T^ 8H  ;'       d    TR9   T^ 8  ;'       d    TR9   T^ 8„  ;'       d    TR9   .4      #   \          d    \        P                  R T 4        R# i ; i)zInvalid package selector: %rF)z==ú<=ú>=)Ú<rF   )Ú>rG   )Ú
ValueErrorÚLOGÚwarningr   r   Úany)Úpackage_selectorÚpackage_nameÚversion_operatorÚpackage_versionÚinstalled_package_versionÚversion_comparisons   &     r)   Ú_does_package_selector_applyrT   Q   s¶   € ðØ:JÑ7ˆ¨ô !0°Ó =ÐØ Ò(ÙÜ(Ø!óÐô ð # aÑ'÷ ;ð ;Ø$Ð(:Ñ:à !Ñ#×GÐGÐ(8¸KÑ(GØ !Ñ#×GÐGÐ(8¸KÑ(Gð	
ó	ð 	øô ô Ü�‰Ð2Ð4DÔEÚðús   ‚A! Á!!BÂBc                óR   € V ^8„  d   QhR\         R\        \        ,          R\        /# )r$   Úcfgr>   Úreturn)r   r   r   r&   )r'   s   "r)   r*   r*   i   s*   € ÷ %ñ %Ü	ð%Ü&Ô'>Õ?ð%ä	ñ%r,   c                 óp  € Vf   R# VP                   e1   \        P                  ! 4       P                  VP                   9  d   R# VP                  e3   ^ RIHp \        4       w  r4Ve   R# V! V4      pW1P                  9  d   R# VP                  e'   VP                  \        V 4      P                  8w  d   R# VP                  e'   \        P                  ! 4       VP                  9  d   R# VP                  e7   \        VP                   Uu. uF  p\        V4      NK  	  up4      '       g   R# R# u upi )NTF)Ú!cloud_type_to_contract_cloud_type)r   r   Úget_release_infoÚseriesr   Úuaclient.clouds.identityrY   r   r    r
   Úis_attachedr!   Úget_dpkg_archr"   rM   rT   )rV   r>   rY   Úcloud_idÚfailrN   s   &&    r)   Údo_selectors_applyra   i   s  € ð ÒÙà×ÑÒ&Ü×"Ò"Ó$×+Ñ+°9×3FÑ3FÔFÙà×ÑÒ#ÝNä'Ó)‰ˆØÒÙÙ4°XÓ>ˆØ×+Ñ+Ô+Ùà‡}�}Ò Ø�=‰=œL¨Ó-×9Ñ9Ô9Ùà×ÑÒ*Ü×ÒÓ!¨×)@Ñ)@Ô@Ùà×ÑÒ%Üð )2×(:Ò(:óá(:Ð$ô -Ð-=Ö>Ù(:ñ÷
ò 
ñ áùòs   ÄD3c                óz   € V ^8„  d   QhR\         P                   R\        \         P                   ,          R\        /# )r$   r<   r=   rW   )rA   r   r&   )r'   s   "r)   r*   r*   ‘   s5   € ÷ ñ Ü×ÑðÜ#+¬H×,=Ñ,=Õ#>ðä	ñr,   c                 óî   € \         P                   P                  \         P                  P                  4      pW 8  d   R # V \         P                  ! ^R7      ,           pVe   W8”  d   TpMTpW$8”  d   R # R# )F)ÚdaysT)rA   ÚnowÚtimezoneÚutcÚ	timedelta)r<   r=   re   Úone_month_after_beginÚ
end_to_uses   &&   r)   Údo_dates_applyrk   ‘   sd   € ô ×
Ñ
×
Ñ
¤× 1Ñ 1× 5Ñ 5Ó
6€CØ
„{Ùà!¤H×$6Ò$6¸BÔ$?Õ?ÐØ
‚{�cÔ1Ø*‰
àˆ
Ø
ÔÙár,   c                ó0   € V ^8„  d   QhR\         R\        /# )r$   ÚcrW   )r%   r&   )r'   s   "r)   r*   r*   £   s   € ÷ -ñ -”sð -œtñ -r,   c                 óB   € \         P                  ! V 4      ^ ,          R8H  # )r   ÚC)ÚunicodedataÚcategory)rm   s   &r)   Úis_control_charrr   £   s   € Ü×Ò Ó" 1Õ%¨Ñ,Ð,r,   c                ó0   € V ^8„  d   QhR\         R\        /# )r$   ÚmsgrW   )r;   r&   )r'   s   "r)   r*   r*   §   s   € ÷ ñ œ.ð ¬Tñ r,   c           	      ó&  € \        V P                  4      ^8  d   R# \        V P                  4      ^8”  d   R# V P                   FC  p\        V Uu. uF  p\        V4      NK  	  up4      '       d    R# \        V4      ^M8”  g   KB   R# 	  R# u upi )é   FT)Úlenr?   rM   rr   )rt   Úlinerm   s   &  r)   Úis_message_validry   §   sp   € Ü
ˆ3�9‰9ƒ~˜ÔÙÜ
ˆ3�9‰9ƒ~˜ÔÙà—	”	ˆÜ©DÓ1©D q” Ö"©DÑ1×2Ò2ÚÜˆt‹9�rŽ>Úñ	 ñ ùò 2s   ÁB
c                óh   € V ^8„  d   QhR\         R\        \        ,          R\        \        ,          /# )r$   rV   r   rW   )r   r   Údictr   r;   )r'   s   "r)   r*   r*   ¶   s-   € ÷ ñ Ü	ðÜ!¤$�ZðäŒnÕñr,   c                 óÚ  € V Fµ  p \         P                  V4      p\        T4      '       g   \        P	                  RT4       KB  \        TP                  TP                  4      '       g   \        P	                  RT4       K€  \        YP                  4      '       g   \        P	                  RT4       K³  Tu # 	  R#   \         d"   p\        P	                  R T4        Rp?Kâ  Rp?ii ; i)zmsg failed parsing: %rNzmsg not valid: %rzmsg dates don't apply: %rzmsg selectors don't apply: %r)r;   Ú	from_dictÚ	ExceptionrK   Údebugry   rk   r<   r=   ra   r>   )rV   r   Úmsg_dictrt   Úes   &&   r)   Úselect_messager‚   ¶   s¸   € ó ˆð	Ü ×*Ñ*¨8Ó4ˆCô   ×$Ò$Ü�I‰IÐ)¨3Ô/ÙÜ˜cŸi™i¨¯©×1Ò1Ü�I‰IÐ1°3Ô7ÙÜ! #§}¡}×5Ò5Ü�I‰IÐ5°sÔ;ÙØŠ
ñ ñ  øô ô 	Ü�I‰IÐ.°Ô2Ýûð	ús   ‡B>Â>C*Ã	C%Ã%C*c                ó$   € V ^8„  d   QhR\         /# ©r$   rV   r   )r'   s   "r)   r*   r*   Í   s   € ÷ ñ œHñ r,   c                 óÒ  € \         P                  ! \        P                  R R7       \        P
                  ! \        P                  RR7       \        P                  ! 4       p\        P                  ! WP                  R\        P                  R7      pVP                  4        \        P                  ! VP                  4      p\        P                  ! V\         P"                  R7      # )T)Úexist_okÚ_apt)ÚuserÚ )ÚhashÚdestdir)Úcls)ÚosÚmakedirsr   ÚAPT_NEWS_PATHÚshutilÚchownÚapt_pkgÚAcquireÚAcquireFileÚapt_news_urlÚrunr   Ú	load_fileÚdestfileÚjsonÚloadsr   ÚDatetimeAwareJSONDecoder)rV   ÚacqÚapt_news_fileÚapt_news_contentss   &   r)   Úfetch_aptnews_jsonrŸ   Ì   s˜   € ä‡K‚K”×&Ñ&°Õ6Ü
‡L‚L”×'Ñ'¨fÕ5ä
�/Š/Ó
€CÜ×'Ò'Ø×Ñ B´×0FÑ0Fô€Mð ‡G�G„IÜ×(Ò(¨×)?Ñ)?Ó@ÐÜ�:Š:ØÜ×)Ñ)ôð r,   c                óF   € V ^8„  d   QhR\         R\        \        ,          /# ©r$   rV   rW   ©r   r   r%   )r'   s   "r)   r*   r*   Ý   s   € ÷ ñ ¤Hð ´¼#µñ r,   c                 ó¼   € \        V 4      p\        WP                  R . 4      4      p\        P	                  RV4       Ve   RP                  VP                  4      # R# )r   zusing msg: %rNÚ
)rŸ   r‚   ÚgetrK   r   Újoinr?   )rV   Ú	news_dictrt   s   &  r)   Úfetch_and_process_apt_newsr¨   Ý   sJ   € Ü" 3Ó'€IÜ
˜Ÿm™m¨J¸Ó;Ó
<€CÜ‡I�Iˆo˜sÔ#Ø
‚Ø�y‰y˜Ÿ™Ó#Ð#Ùr,   c                óF   € V ^8„  d   QhR\         R\        \        ,          /# r¡   r¢   )r'   s   "r)   r*   r*   æ   s   € ÷ #ñ #œð #¤X¬c¥]ñ #r,   c                ó<  € \        V 4      pVP                  pVP                  p\        P                  ! V 4      pV\
        P                  P                  8X  d?   \        P                  ! \        P                  P                  4       \        P                  # \        P                  ! \        P                  P                  4       V\
        P                  P                  8X  d0   \        P                  P!                  V4      P#                  VR7      # V\
        P$                  P                  8X  dk   \&        P(                  V,           pVP*                  pVf   RpMVP-                  R4      p\        P.                  P!                  V4      P#                  WuR7      # R# )z,
:return: str if local news, None otherwise
)Úremaining_daysNÚUnknownz%d %b %Y)Úexpired_dater«   )r
   Úcontract_statusÚcontract_remaining_daysr   Úget_machine_token_filer	   ÚEXPIREDÚvaluer   ÚaddÚNoticeÚCONTRACT_EXPIREDr   ÚremoveÚACTIVE_EXPIRED_SOONÚCONTRACT_EXPIRES_SOONÚ	pluralizer'   ÚEXPIRED_GRACE_PERIODr   Ú!CONTRACT_EXPIRY_GRACE_PERIOD_DAYSÚcontract_expiry_datetimeÚstrftimeÚCONTRACT_EXPIRED_GRACE_PERIOD)rV   Úis_attached_infoÚexpiry_statusr«   Úmachine_token_fileÚgrace_period_remainingÚexp_dtÚ
exp_dt_strs   &       r)   Úlocal_apt_newsrÅ   æ   sG  € ô $ CÓ(ÐØ$×4Ñ4€MØ%×=Ñ=€NÜ&×=Ò=¸cÓBÐàÔ,×4Ñ4×:Ñ:Ô:Ü�Š”G—N‘N×3Ñ3Ô4Ü×(Ñ(Ð(ä‡N‚N”7—>‘>×2Ñ2Ô3àÔ,×@Ñ@×FÑFÔFÜ×-Ñ-×7Ñ7¸ÓG×NÑNØ)ð Oó 
ð 	
ð Ô,×AÑA×GÑGÔGä×6Ñ6¸ÕGð 	ð $×<Ñ<ˆØŠ>Ø"‰JàŸ™¨Ó4ˆJÜ×5Ñ5×?Ñ?Øó
ç
‰&Ø#ð ó 
ð	
ñ r,   c                ó0   € V ^8„  d   QhR\         R\         /# )r$   ÚnewsrW   )r%   )r'   s   "r)   r*   r*     s   € ÷ ñ ¤Sð ¬Sñ r,   c                 ó|   € R pV P                  R4       F  pVRP                  V4      ,          pK  	  VR ,          pV# )z#
r¤   z# {}
)Úsplitr'   )rÇ   Úresultrx   s   &  r)   Úformat_news_for_apt_updaterË     s;   € Ø€FØ—
‘
˜4Ö ˆØ�(—/‘/ $Ó'Õ'Šñ !à
ˆe…O€FØ€Mr,   c                ó$   € V ^8„  d   QhR\         /# r„   r   )r'   s   "r)   r*   r*     s   € ÷ /ñ /œñ /r,   c                 ó8  €  \        V 4      pV'       g   \        V 4      pV'       dL   \        P                  P	                  V4       \        V4      p\        P                  P	                  V4       R# \        P                  P                  4        \        P                  P                  4        R#   \         d^   p\        P                  R T4       \        P                  P                  4        \        P                  P                  4         Rp?R# Rp?ii ; i)z2something went wrong while processing apt_news: %rN)rÅ   r¨   r   Úapt_news_raw_fileÚwriterË   Úapt_news_contents_fileÚdeleter~   rK   r   )rV   rÇ   Úapt_update_formatted_newsr�   s   &   r)   Úupdate_apt_newsrÓ     s¿   € ð/Ü˜cÓ"ˆßÜ-¨cÓ2ˆDßÜ×)Ñ)×/Ñ/°Ô5Ü(BÀ4Ó(HÐ%Ü×.Ñ.×4Ñ4Ð5NÖOä×.Ñ.×5Ñ5Ô7Ü×)Ñ)×0Ñ0Ö2øÜô /Ü�	‰	ÐFÈÔJÜ×*Ñ*×1Ñ1Ô3Ü×%Ñ%×,Ñ,×.Ò.ûð/ús$   ‚%B1 ¨A	B1 Á3<B1 Â1DÂ<ADÄD)6rA   r™   Úloggingr�   r�   rp   Útypingr   r   r’   Úuaclientr   r   r   r   Ú(uaclient.api.u.pro.status.is_attached.v1r	   r
   Úuaclient.aptr   r   r   r\   r   Úuaclient.configr   Úuaclient.data_typesr   r   r   r   r   r   Úuaclient.filesr   r   r   Ú	getLoggerÚreplace_top_level_logger_namer2   rK   r   r;   rT   ra   rk   rr   ry   r‚   rŸ   r¨   rÅ   rË   rÓ   © r,   r)   Ú<module>rß      sÄ   ðÛ Û Û Û 	Û Û ß !ã ç 5Ó 5÷÷ OÑ NÝ 3Ý $÷÷ ÷ ?Ñ >à×Ò˜×:Ò:¸8ÓDÓE€ô!˜jô !ô6�Zô ò,õ0%õPõ$-õõð, ôó ðõ õ#õL÷/r,   