+
    âCëiˆ)  ã                   óò   € ^ RI t ^ RIt]P                  ! RR4       ^ RIHtHtHtHt ^ RIHt	 ^ RI
t
^ RIHu Ht ^ RIHt ^ RIHt ^ RIHt ]! ^4      w  tt ! R	 R
]P                  4      t ! R R4      tR# )é    NÚGtkz4.0)ÚGObjectr   ÚGioÚGLib)Úgettext)Ú
MirrorTest)Úsetup_ui)ÚCountryInformationc                   ób   a a€ ] tR t^%t oR t]P                  ! ]RR7      tRV 3R llt	Rt
VtV ;t# )Ú
MirrorItemÚ )ÚtypeÚdefaultc                óÎ   <€ \         SV `  4        WP                  n        W n        W0n        V'       d+   \        P                  P                  \        4      V n
        R # R V n
        R # ©N)ÚsuperÚ__init__ÚpropsÚnameÚmirrorÚ
is_countryr   Ú	ListStoreÚnewr   Úchildren)Úselfr   r   r   Ú	__class__s   &&&&€ÚE/usr/lib/python3/dist-packages/softwareproperties/gtk/DialogMirror.pyr   ÚMirrorItem.__init__*   s?   ø€ Ü‰ÑÔØ�
‰
ŒØŒØ$Œß9CœŸ™×)Ñ)¬*Ó5ˆŽÈˆŽó    )r   r   r   )NF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__gtype_name__r   ÚPropertyÚstrr   r   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r   %   s(   ù‡ € Ø!€Nà×Ò ¨bÔ1€D÷N÷ Nr   r   c                   ó�   a € ] tR t^1t o 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R ltRtV tR# )ÚDialogMirrorc                ó°  € \        V \        P                  P                  VR R4      RR7       V P                  V n        V P
                  P                  V4       V P                  V n        V P                  P                  V P
                  4       W0n	        V P                  4        V P                  4        V P                  4        V P                  4        R# )Ú
gtkbuilderzdialog-mirror.uizsoftware-properties)ÚdomainN)r	   ÚosÚpathÚjoinÚdialog_mirrorÚdialogÚset_transient_forÚdialog_mirror_testÚdialog_testÚdistroÚ_setup_ui_referencesÚ_setup_protocol_comboÚ_setup_mirror_treeÚ_connect_signals)r   ÚparentÚdatadirr8   s   &&&&r   r   ÚDialogMirror.__init__2   sŸ   € Ü�”r—w‘w—|‘| G¨\Ð;MÓNØ-õ	/ð ×(Ñ(ˆŒØ�‰×%Ñ% fÔ-à×2Ñ2ˆÔØ×Ñ×*Ñ*¨4¯;©;Ô7àŒØ×!Ñ!Ô#Ø×"Ñ"Ô$Ø×ÑÔ!Ø×ÑÖr   c                óÒ   € V P                   V n        V P                  V n        V P                  V n        V P                  V n        V P                  V n	        V P                  V n        R # r   )Úlistview_mirrorsÚlistviewÚbutton_mirror_chooseÚbutton_chooseÚbutton_test_cancelÚbutton_cancelÚlabel_test_mirrorÚ
label_testÚprogressbar_test_mirrorÚprogressbar_testÚcombobox_mirror_protoÚcombobox©r   s   &r   r9   Ú!DialogMirror._setup_ui_referencesB   sS   € Ø×-Ñ-ˆŒØ!×6Ñ6ˆÔØ!×4Ñ4ˆÔØ×0Ñ0ˆŒØ $× <Ñ <ˆÔØ×2Ñ2ˆŽr   c                ó>  € \         P                  ! \        P                  \        P                  4      pV P                  P                  V4       \         P                  ! 4       pV P                  P                  VR 4       V P                  P                  VR^ 4       R# )TÚmarkupN)	r   r   r   ÚTYPE_STRINGrL   Ú	set_modelÚCellRendererTextÚ
pack_startÚadd_attribute)r   Úmodel_protoÚrenderers   &  r   r:   Ú"DialogMirror._setup_protocol_comboJ   sh   € Ü—m’m¤G×$7Ñ$7¼×9LÑ9LÓMˆØ�‰×Ñ Ô,ä×'Ò'Ó)ˆØ�‰× Ñ  ¨4Ô0Ø�‰×#Ñ# H¨h¸Ö:r   c                óþ  € V P                  4       p\        P                  P                  VR RV P                  4      V n        \        P                  P                  V P
                  4      V n        V P                  P                  V P                  4       \        P                  ! 4       pVP                  RV P                  4       VP                  RV P                  4       V P                  P                  V4       R# )FTÚsetupÚbindN)Ú_build_mirror_treer   ÚTreeListModelr   Ú_get_children_funcÚtreelistÚSingleSelectionÚ	selectionrB   rR   ÚSignalListItemFactoryÚconnectÚ_on_factory_setupÚ_on_factory_bindÚset_factory)r   Ú
root_storeÚfactorys   &  r   r;   ÚDialogMirror._setup_mirror_treeR   s±   € Ø×,Ñ,Ó.ˆ
ä×)Ñ)×-Ñ-Ø˜˜t T×%<Ñ%<ó>ˆŒä×,Ñ,×0Ñ0°·±Ó?ˆŒØ�‰×Ñ §¡Ô/ä×+Ò+Ó-ˆØ�‰˜ ×!7Ñ!7Ô8Ø�‰˜ × 5Ñ 5Ô6Ø�‰×!Ñ! 'Ö*r   c                ó^  € \        4       p/ p. pV P                  P                  P                  P	                  4        F�  w  rE\        WERR7      p\        VRR4      pV'       dJ   Wr9  d!   VP                  V4      p\        VRR7      W'&   W',          P                  P                  V4       Kp  VP                  V4       Kƒ  	  VP                  4        F‘  p	\        V	P                  4      ^8”  g   K  \        P                  P                  \        P                  P                  \
        RR4      4      p
\        P                   P                  V	P                  V
4      pW¹n        K“  	  \"        P$                  P                  \
        4      pVP                  4        F  p	VP                  V	4       K  	  V F  pVP                  V4       K  	  \        P                  P                  \        P                  P                  \
        RR4      4      p\        P                   P                  WÍ4      pV# )z�Build the hierarchical mirror data structure. The mirror data are kept in python-apt-common
at /usr/share/python-apt/templates/ubuntu.mirrorsF)r   ÚlocationNTr   )r
   r8   Úsource_templateÚ
mirror_setÚitemsr   ÚgetattrÚget_country_namer   ÚappendÚvaluesÚlenr   ÚStringSorterr   ÚPropertyExpressionÚSortListModelr   r   )r   Úcountry_infoÚ	countriesÚorphaned_mirrorsÚhostnamer   Úmirror_itemÚcountry_codeÚcountry_nameÚcountry_itemÚsorterÚsorted_childrenrg   Úroot_sorterÚsorted_roots   &              r   r\   ÚDialogMirror._build_mirror_tree_   s½  € ô *Ó+ˆØˆ	ØÐð !%§¡× ;Ñ ;× FÑ F× LÑ LÖ NÑˆHÜ$ XÀ%ÔHˆKä" 6¨:°tÓ<ˆLßØÔ0Ø#/×#@Ñ#@ÀÓ#N�LÜ.8¸ÐRVÔ.W�IÑ+ØÕ'×0Ñ0×7Ñ7¸ÖDà ×'Ñ'¨Ö4ñ !Oð &×,Ñ,Ö.ˆLÜ�<×(Ñ(Ó)¨AÖ-Ü×)Ñ)×-Ñ-¬c×.DÑ.D×.HÑ.HÌÐUYÐ[aÓ.bÓc�Ü"%×"3Ñ"3×"7Ñ"7¸×8MÑ8MÈvÓ"V�Ø(7Ö%ñ	 /ô —]‘]×&Ñ&¤zÓ2ˆ
à%×,Ñ,Ö.ˆLØ×Ñ˜lÖ+ñ /ó ,ˆKØ×Ñ˜kÖ*ñ ,ô ×&Ñ&×*Ñ*¬3×+AÑ+A×+EÑ+EÄjÐRVÐX^Ó+_Ó`ˆÜ×'Ñ'×+Ñ+¨JÓDˆàÐr   c                ó   € VP                   # )zTreeListModel child function)r   )r   Úitems   &&r   r^   ÚDialogMirror._get_children_func†   s   € à�}‰}Ðr   c                óÒ   € \         P                  ! 4       p\         P                  ! \         P                  P                  R7      pVP                  V4       VP                  V4       R# )z Setup list item widget hierarchy)ÚhalignN)r   ÚTreeExpanderÚLabelÚAlignÚSTARTÚ	set_child)r   rh   Ú	list_itemÚexpanderÚlabels   &&&  r   rd   ÚDialogMirror._on_factory_setupŠ   sB   € ä×#Ò#Ó%ˆÜ—	’	¤§¡§¡Ô1ˆØ×Ñ˜5Ô!Ø×Ñ˜HÖ%r   c                óò   € VP                  4       pVP                  4       pVP                  4       pVP                  V4       VP                  4       pVP                  VP                  P
                  4       R# )zBind data to list itemN)Ú	get_childÚget_itemÚset_list_rowÚset_textr   r   )r   rh   rŽ   r�   r�   Úrowr…   s   &&&    r   re   ÚDialogMirror._on_factory_bind‘   sY   € à×&Ñ&Ó(ˆØ×"Ñ"Ó$ˆØ× Ñ Ó"ˆà×Ñ˜cÔ"Ø�|‰|‹~ˆØ�‰�t—z‘z—‘Ö'r   c                óê   € V P                   P                  RV P                  4       V P                  P                  RV P                  4       V P
                  P                  RV P                  4       R# )zConnect all signal handlersÚclickedznotify::selectedN)Úbutton_mirror_testrc   Ú_on_test_clickedrF   Ú_on_cancel_test_clickedra   Ú_on_selection_changedrM   s   &r   r<   ÚDialogMirror._connect_signals›   sU   € à×Ñ×'Ñ'¨	°4×3HÑ3HÔIØ×Ñ×"Ñ" 9¨d×.JÑ.JÔKØ�‰×ÑÐ1°4×3MÑ3MÖNr   c                ó|   € VP                  4       pV'       g   R # VP                  4       pV P                  V4       R # r   )Úget_selected_itemr”   Ú_update_protocol_combo)r   ra   Úpspecr—   r…   s   &&&  r   rž   Ú"DialogMirror._on_selection_changed¡   s/   € Ø×)Ñ)Ó+ˆßÙà�|‰|‹~ˆØ×#Ñ# DÖ)r   c                óÀ  € V P                   P                  4       pVP                  4        V P                  P	                  R 4       V P                   P	                  R 4       VP
                  '       g   VP                  '       g   R# \        4       pVP                  P                   FP  pVP                  V9  g   K  VP                  VP                  4       VP                  VP                  4       4       KR  	  \        V4      ^ 8”  dT   V P                   P                  ^ 4       V P                   P	                  R4       V P                  P	                  R4       R# R# )FNT)rL   Ú	get_modelÚclearrD   Úset_sensitiver   r   ÚsetÚrepositoriesÚprotoÚaddrq   Úget_infors   Ú
set_active)r   r…   ÚmodelÚ	protocolsÚrepos   &&   r   r¢   Ú#DialogMirror._update_protocol_combo©   sî   € Ø—‘×'Ñ'Ó)ˆØ�‰Œà×Ñ×(Ñ(¨Ô/Ø�‰×#Ñ# EÔ*ð �?�?ˆ? $§+§+ +Ùô “Eˆ	Ø—K‘K×,Ô,ˆDØ�z‰z Ö*Ø—‘˜dŸj™jÔ)Ø—‘˜TŸ]™]›_Ö-ñ -ô
 ˆu‹:˜Œ>Ø�M‰M×$Ñ$ QÔ'Ø�M‰M×'Ñ'¨Ô-Ø×Ñ×,Ñ,¨TÖ2ñ r   c                óø  € V P                   P                  4       pV'       g   R # VP                  4       pVP                  '       g   VP                  '       g   R # V P
                  P                  4       pV P
                  P                  4       pV^ 8  d   R # VP                  \        V4      4      pVP                  V\        4      pVP                  V\        4      pV RVP                  P                   RV 2# )Nz://Ú/)ra   r¡   r”   r   r   rL   r¦   Ú
get_activeÚget_iter_from_stringr&   Ú	get_valueÚCOLUMN_PROTOÚ
COLUMN_DIRrz   )r   r—   r…   r¯   ÚactiveÚ
iter_protor«   Ú	directorys   &       r   Ú_get_selected_mirror_urlÚ%DialogMirror._get_selected_mirror_urlÀ   s½   € Ø�n‰n×.Ñ.Ó0ˆßÙà�|‰|‹~ˆØ�?�?ˆ? $§+§+ +Ùà—‘×'Ñ'Ó)ˆØ—‘×)Ñ)Ó+ˆØ�AŒ:Ùà×/Ñ/´°F³Ó<ˆ
Ø—‘ 
¬LÓ9ˆØ—O‘O J´
Ó;ˆ	à�˜˜DŸK™K×0Ñ0Ð1°°9°+Ð>Ð>r   c                ó„   a a€ VV 3R  lpS P                   P                  RV4       S P                   P                  4        R# )c                 óÔ   <€ SP                   P                  4        R pV\        P                  P                  8X  d   SP                  4       p\        S4      '       d   S! V4       R # R # r   )r4   Úhider   ÚResponseTypeÚOKr½   Úcallable)r4   Úresponse_idÚurlÚon_responser   s   && €€r   Ú_on_responseÚ*DialogMirror.present.<locals>._on_responseÕ   sR   ø€ Ø�K‰K×ÑÔØˆCØœc×.Ñ.×1Ñ1Ô1Ø×3Ñ3Ó5�Ü˜×$Ò$Ù˜CÖ ñ %r   ÚresponseN)r4   rc   Úpresent)r   rÇ   rÈ   s   ff r   rË   ÚDialogMirror.presentÔ   s.   ù€ ö	!ð 	�‰×Ñ˜J¨Ô5Ø�‰×ÑÖr   c                ó  € V P                   P                  R4       V P                  P                  4        \        P
                  ! 4       V n        V P                  P                  4        \        P
                  ! 4       p\        P                  ! R4      P                  4       P                  4       pRV P                  P                  P                  : RV P                  P                  P                  ^ ,          P                  : RV: R2p\!        V P                  P                  P"                  P%                  4       4      p\'        WTW P                  4      pVP)                  4        \*        P,                  ! ^dV P.                  Wb4       R# )zStart mirror speed testTzdpkg --print-architecturezdists/r´   z/binary-z/Packages.gzN)rF   r¨   r7   rË   Ú	threadingÚEventÚrunningr©   r0   ÚpopenÚreadÚstripr8   rl   r   Ú
componentsÚlistrm   rr   r   Ústartr   Útimeout_addÚ_update_test_progress)r   ÚbuttonÚprogress_updateÚarchÚ	test_fileÚmirrorsÚtests   &&     r   rœ   ÚDialogMirror._on_test_clickedà   s  € à×Ñ×(Ñ(¨Ô.Ø×Ñ× Ñ Ô"ä —’Ó(ˆŒØ�‰×ÑÔÜ#Ÿ/š/Ó+ˆô �xŠxÐ3Ó4×9Ñ9Ó;×AÑAÓC‰à�K‰K×'Ñ'×,Ô,Ø�K‰K×'Ñ'×2Ñ2°1Õ5×:Ô:Ûð
ˆ	ô �t—{‘{×2Ñ2×=Ñ=×DÑDÓFÓGˆÜ˜'¨o¿|¹|ÓLˆØ�
‰
Œô 	×Ò˜˜d×8Ñ8¸$ÖPr   c                óÀ  € VP                  4       '       dŽ   \        R 4      VP                  ^ ,          VP                  ^,          3,          pV P                  P	                  V4       V P                  P                  VP                  ^,          4       VP                  4        V P                  P                  4       '       d   R# V P                  P                  4        V P                  P                  R4       VP                  '       d   V P                  VP                  4       R# \        P                  ! V P                   \        R4      \        R4      4       R# )zCompleted %s of %s testsTr   z%No suitable download server was foundz&Please check your Internet connection.F)Úis_setÚ_ÚprogressrJ   r–   Úset_fractionr§   rÐ   r7   rÁ   rH   Ú	set_labelÚbestÚ_select_best_mirrorÚdialogsÚshow_error_dialogr4   )r   rÞ   rÚ   Úprogress_texts   &&& r   rØ   Ú"DialogMirror._update_test_progressù   s   € Ø×!Ñ!×#Ò#ÜÐ8Ó9¸T¿]¹]È1Õ=MÈtÏ}É}Ð]^ÕO_Ð<`Õ`ˆMØ×!Ñ!×*Ñ*¨=Ô9Ø×!Ñ!×.Ñ.¨t¯}©}¸QÕ/?Ô@Ø×!Ñ!Ô#à�<‰<×Ñ× Ò Ùð 	×Ñ×ÑÔØ�‰×!Ñ! "Ô%à�9�9ˆ9Ø×$Ñ$ T§Y¡YÔ/ñ ô ×%Ò%Ø—‘ÜÐ9Ó:ÜÐ:Ó;ôñ
 r   c                óþ  € \        V P                  P                  4       4       FÕ  pV P                  P                  V4      pVP                  4       pVP                  '       d   KB  VP
                  '       g   KV  VP
                  P                  V8X  g   Ks  V P                  P                  V4       V P                  V4       V P                  P                  V\        P                  P                  R 4        R # 	  R # r   )Úranger_   Úget_n_itemsr”   r   r   rz   ra   Úset_selectedr¢   rB   Ú	scroll_tor   ÚListScrollFlagsÚFOCUS)r   Úbest_hostnameÚir—   r…   s   &&   r   rç   Ú DialogMirror._select_best_mirror  s¤   € Ü�t—}‘}×0Ñ0Ó2Ö3ˆAØ—-‘-×(Ñ(¨Ó+ˆCØ—<‘<“>ˆDà—?—?’? t§{§{¢{°t·{±{×7KÑ7KÈ}Ö7\Ø—‘×+Ñ+¨AÔ.Ø×+Ñ+¨DÔ1Ø—‘×'Ñ'¨¬3×+>Ñ+>×+DÑ+DÀdÔKÚó 4r   c                óö   € V P                   P                  4        V P                  P                  R \	        R4       R24       V P
                  P                  R4       V P                  P                  R4       R# )z<i>zCanceling...z</i>Fg      ð?N)	rÐ   r§   rH   rå   râ   rF   r¨   rJ   rä   )r   rÙ   s   &&r   r�   Ú$DialogMirror._on_cancel_test_clicked  s[   € Ø�‰×ÑÔØ�‰×!Ñ! C¬¨.Ó(9Ð':¸$Ð"?Ô@Ø×Ñ×(Ñ(¨Ô/Ø×Ñ×*Ñ*¨3Ö/r   Nc                ó(   € V P                  R 4       R# )NT)r�   )r   r4   ÚeventÚdatas   &&&&r   Ú"on_dialog_mirror_test_delete_eventÚ/DialogMirror.on_dialog_mirror_test_delete_event"  s   € Ø×$Ñ$ TÔ*Ùr   )rF   rD   rL   r4   r7   r8   rH   rB   rJ   rÐ   ra   r_   r   )r    r!   r"   r#   r   r9   r:   r;   r\   r^   rd   re   r<   rž   r¢   r½   rË   rœ   rØ   rç   r�   rû   r'   r(   )r*   s   @r   r,   r,   1   sg   ø‡ € ò ò 3ò;ò+ò%òNò&ò(òOò*ò3ò.?ò(
òQò2ò0	ò0÷ò r   r,   )r0   ÚgiÚrequire_versionÚgi.repositoryr   r   r   r   r   râ   rÎ   Úsoftwareproperties.gtk.dialogsÚgtkrè   Úsoftwareproperties.MirrorTestr   Úsoftwareproperties.gtk.utilsr	   Ú%softwareproperties.CountryInformationr
   rí   r¸   r¹   r   r,   © r   r   Ú<module>r     sd   ðó. 
Û 	Ø × Ò �5˜%Ô  ß 1Ó 1Ý  Û ç 0Ð 0Ý 4Ý 1Ý Dá" 1›XÑ €ˆzô
N�—‘ô 
N÷só sr   