§
    ÌtºfÇœ  ã                   óœ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	Z	 e	j
        dd¦  «         d dlmZ d dlmZ d dlmZ  ej        ¦   «          d dlZ ej        ¦   «          d d	lmZ d d
lmZ d dlmZ d dlZd dlZd dlZd dlmZmZ d dl m!Z!m"Z"m#Z#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl+m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4  ej5        dd¦  «        Z6 e7e6e j8         9                    e6¦  «        ¦  «          G d„ dej:        ¦  «        Z; G d„ de1¦  «        Z< G d„ de=¦  «        Z>d„ Z?d„ Z@eAdk    r e@¦   «          dS dS ) é    N)Úpprint)Útime_nsÚGtkz3.0)r   )ÚColor)Úgtk3reactor)Úreact)ÚinlineCallbacks)Úreactor)ÚnaturaldeltaÚnaturaltime)Úparse_activation_codeÚhltypeÚhlidÚhlval)ÚCBORSerializer)Úsleep)ÚApplicationRunner)Úunpack_uint256)Úaccount_from_seedphraseÚgenerate_seedphraseÚaccount_from_ethkey)ÚClient)Ú
UserConfigÚProfileÚautobahnzasset/xbr_gray.svgc                   ó€   — e Zd ZdZ ej        ¦   «         ZdZdZdZ	dZ
d„ Zed„ ¦   «         Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ ZdS )ÚApplicationWindowa  
    Main application window which provides UI for the following functions:

    * N) New account
    * R) Recover account:
       - R1) Backup cloud device in account enabled => download encrypted account data
           from cloud backup device, requires email (and 2FA) verification and password
       - R2) At least one device left in account and at hand => synchronize with existing device,
           direct device-to-device encrypted account data transfer
       - R3) Only cold storage recovery seed phrase left => account from seed-phrase full
           recovery, including new email and 2FA verification.

    See also:
    * https://python-gtk-3-tutorial.readthedocs.io/en/latest/
    * https://twistedmatrix.com/documents/current/core/howto/choosing-reactor.html
    r   é   é   é   c                 ó   — t           j                             | ¦  «         || _        || _        || _        || _        || _        || _        d | _	        d | _
        d | _        d | _        d | _        d | _        d | _        t!          j        d¬¦  «        | _        |                      d¦  «         |                      dd¦  «         |                      d¦  «         |                      d¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          d S )Ns                   ©ÚbyteszXBR NetworkiX  é2   F)r   Ú	AssistantÚ__init__r
   ÚsessionÚconfigÚconfig_pathÚprofileÚprofile_nameÚinput_seedphraseÚinput_emailÚinput_passwordÚoutput_accountÚoutput_ethadrÚoutput_ethadr_rawÚoutput_member_dataÚuuidÚUUIDÚoutput_member_data_oidÚ	set_titleÚset_default_sizeÚset_border_widthÚset_resizableÚ_setup_page1Ú_setup_page2Ú_setup_page3Ú_setup_page4Ú_setup_page5)Úselfr
   r'   r(   r)   r*   r+   s          úP/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/xbr/_gui.pyr&   zApplicationWindow.__init__`   sE  € ÝŒ×Ò˜tÑ$Ô$Ð$àˆŒØˆŒØˆŒØ&ˆÔØˆŒØ(ˆÔà $ˆÔØˆÔØ"ˆÔà"ˆÔØ!ˆÔØ!%ˆÔØ"&ˆÔÝ&*¤i°lÐ&CÑ&CÔ&CˆÔ#ð 	�Š�}Ñ%Ô%Ð%Ø×Ò˜c 3Ñ'Ô'Ð'Ø×Ò˜bÑ!Ô!Ð!Ø×Ò˜5Ñ!Ô!Ð!ð 	×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐÐÐó    c              #   ó$  K  — | j         �rßt          | j         j        ¦  «        | _        t          j                             | j        j        ¦  «        | _        t          j
        | j        dd …         ¦  «        | _        | j                             ¦   «         V —}|�r¿t          t          j        t          j        |d         d         d¦  «        d¦  «        ¦  «        }| j                             |¦  «         | j                             t          |d         d         ¦  «        ¦  «         | j                             t          |d         d         ¦  «        ¦  «         | j                             t          |d         d         d	         ¦  «        ¦  «         | j                             t          |d         d         d
         ¦  «        ¦  «         | j                             dt          j        |d         d         d         ¦  «                             ¦   «         z   ¦  «         | j                             t          |d         d         d         ¦  «        ¦  «         t7          |¦  «         | j                             | j        ¦  «        V —}|s~| j                             d| j        ¬¦  «         | j         j        r|                       d¦  «         d S | j         j        r|                       d¦  «         d S |                       d¦  «         d S | j                             d| j        |¬¦  «         || _!        tE          t          j        tG          ¦   «         d¦  «        | j!        d         z
  dz  ¦  «        }tI          t          j        | j!        d         d¦  «        ¦  «        }| j%                             t          | j!        d         ¦  «        ¦  «         | j&                             t          | j!        d         ¦  «        ¦  «         | j'                             d (                    ||¦  «        ¦  «         | j)                             t          | j!        d         ¦  «        ¦  «         | j*                             t          | j!        d         d         ¦  «        ¦  «         | j+                             t          | j!        d         d         ¦  «        ¦  «         |                       d¦  «         d S tY          ¦   «         }| j-        |_.        d |_        d |_/        d |_0        d |_1        d|_2        d	|_3        d |_4        d |_        d |_5        d |_6        d |_7        d |_8        d |_9        d |_:        d |_;        d |_<        || _         |                       d ¦  «         d S )!Nr   ÚstatusÚnowÚnsÚsÚchainr(   Ú	contractsÚ
xbrnetworkÚxbrtokenÚ0xÚblockÚhashÚnumberú*ethadr {output_ethadr} is NOT yet a member©r0   r    r   ú=ok, ethadr {output_ethadr} already is a member: {member_data}©r0   Úmember_dataÚcreatedg    eÍÍAÚoidÚaddressz{} ({} ago)ÚlevelÚbalanceÚethÚxbré   úws://localhost:8090/wsr   )=r*   r   Úethkeyr/   Úweb3ÚWeb3ÚtoChecksumAddressrV   r0   ÚbinasciiÚa2b_hexr1   r'   Ú
get_statusÚstrÚnpÚ
datetime64Ú_label5_nowÚ	set_labelÚ_label5_chainÚ_label5_statusÚ_label5_xbrnetworkÚ_label5_xbrtokenÚ_label5_blockhashÚb2a_hexÚdecodeÚ_label5_blocknumberr   Ú
get_memberÚlogÚinfoÚvaction_oidÚset_current_pager2   r   r   r   Ú_label2Ú_label4Ú_label6ÚformatÚ_label8Ú_label10Ú_label12r   r)   ÚpathÚcskeyÚusernameÚemailÚnetwork_urlÚnetwork_realmÚ
member_oidÚvaction_requestedÚvaction_verifiedÚdata_urlÚ
data_realmÚ
infura_urlÚinfura_networkÚ
infura_keyÚinfura_secret)r?   rs   rD   rS   Úcreated_agorT   r*   s          r@   ÚstartzApplicationWindow.start�   sð  è è € ð Œ<ñ C	%Ý"5°d´lÔ6IÑ"JÔ"JˆDÔÝ!%¤×!<Ò!<¸TÔ=PÔ=XÑ!YÔ!YˆDÔÝ%-Ô%5°dÔ6HÈÈÈÔ6LÑ%MÔ%MˆDÔ"Øœ×0Ò0Ñ2Ô2Ð2Ð2ˆDØñ [Ý�"œ-­¬°d¸8´nÀUÔ6KÈTÑ(RÔ(RÐTWÑXÔXÑYÔY�ØÔ ×*Ò*¨3Ñ/Ô/Ð/ØÔ"×,Ò,­S°°h´ÀÔ1HÑ-IÔ-IÑJÔJÐJØÔ#×-Ò-­c°$°x´.ÀÔ2JÑ.KÔ.KÑLÔLÐLØÔ'×1Ò1µ#°d¸8´nÀ[Ô6QÐR^Ô6_Ñ2`Ô2`ÑaÔaÐaØÔ%×/Ò/µ°D¸´NÀ;Ô4OÐPZÔ4[Ñ0\Ô0\Ñ]Ô]Ð]ØÔ&×0Ò0°½Ô8HÈÈhÌÐX_ÔI`ÐagÔIhÑ8iÔ8i×8pÒ8pÑ8rÔ8rÑ1rÑsÔsÐsØÔ(×2Ò2µ3°t¸H´~ÀgÔ7NÈxÔ7XÑ3YÔ3YÑZÔZÐZå�4‰LŒLˆLØ $¤× 7Ò 7¸Ô8NÑ OÔ OÐOÐOˆKØð )Ø”—’ÐJØ,0Ô,>ð ñ @ô @ð @à”<Ô+ð 	1à×)Ò)¨!Ñ,Ô,Ð,Ð,Ð,à”|Ô*ð 1à×-Ò-¨aÑ0Ô0Ð0Ð0Ð0ð ×-Ò-¨aÑ0Ô0Ð0Ð0Ð0à”—’Ð]Ø,0Ô,>ÈKð ñ Yô Yð Yà*5�Ô'Ý*­B¬M½'¹)¼)ÀTÑ,JÔ,JÈTÔMdÐenÔMoÑ,oÐs~Ñ+~ÑÔ�Ý%¥b¤m°DÔ4KÈIÔ4VÐX[Ñ&\Ô&\Ñ]Ô]�Ø”×&Ò&¥s¨4Ô+BÀ5Ô+IÑ'JÔ'JÑKÔKÐKØ”×&Ò&¥s¨4Ô+BÀ9Ô+MÑ'NÔ'NÑOÔOÐOØ”×&Ò& }×';Ò';¸GÀ[Ñ'QÔ'QÑRÔRÐRØ”×&Ò&¥s¨4Ô+BÀ7Ô+KÑ'LÔ'LÑMÔMÐMØ”×'Ò'­¨DÔ,CÀIÔ,NÈuÔ,UÑ(VÔ(VÑWÔWÐWØ”×'Ò'­¨DÔ,CÀIÔ,NÈuÔ,UÑ(VÔ(VÑWÔWÐWð ×%Ò% aÑ(Ô(Ð(Ð(Ð(å‘i”iˆGØÔ+ˆGŒLØ!ˆGŒNØ ˆGŒMØ#ˆGÔØ ˆGŒMØ":ˆGÔØ$0ˆGÔ!Ø!%ˆGÔØ"&ˆGÔØ(,ˆGÔ%Ø'+ˆGÔ$Ø#ˆGÔØ!%ˆGÔØ!%ˆGÔØ%)ˆGÔ"Ø!%ˆGÔØ$(ˆGÔ!Ø"ˆDŒLð ×!Ò! !Ñ$Ô$Ð$Ð$Ð$rA   c                 ó`   — |                       | j        |                     ¦   «         ¦  «         d S ©N)Úset_page_completeÚcompleteÚ
get_active)r?   Úcheckbuttons     r@   Úon_complete_toggledz%ApplicationWindow.on_complete_toggledÉ   s,   € Ø×Ò˜tœ}¨k×.DÒ.DÑ.FÔ.FÑGÔGÐGÐGÐGrA   c                 óÄ	  ‡ — t          j        ¦   «         }|                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         t          j        ¦   «         }| 	                    t          ¦  «         |                     |dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     |dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     t           j        j        ¦  «         |                     |dddd¦  «         t           j                             d	¦  «        }ˆ fd
„}|                     d|¦  «         |                     |dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     |dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     t           j        j        ¦  «         |                     d¦  «         |                     d¦  «         |                     |dddd¦  «         t           j                             d¦  «        }	ˆ fd„}
|	                     d|
¦  «         |                     |	dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     t           j        j        ¦  «         |                     d¦  «         |                     d¦  «         |                     |dddd¦  «         t           j                             d¦  «        }ˆ fd„}|                     d|¦  «         |                     |dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     t           j        j        ¦  «         |                     d¦  «         |                     d¦  «         |                     |dddd¦  «         t           j                             d¦  «        }ˆ fd„}|                     d|¦  «         |                     |dddd¦  «         ‰                      |¦  «         dS )z®
        Setup page shown when no config/profile could be found. Allows to select from:

        * new account
        * synchronize device
        * recover account
        é   r   r   r   z+

I am new and do not have an account yet:
©Úlabelç      à?zMCreate a new account or start from fresh. You only need an email address. [N]zNew accountc                 ój   •— ‰j                              d| ¬¦  «         ‰                     d¦  «         d S )NzSELECTED_NEW: {res}©Úresr   ©rr   rs   ru   ©rœ   r?   s    €r@   Ú
on_button1z2ApplicationWindow._setup_page1.<locals>.on_button1í   s6   ø€ ØŒH�MŠMÐ/°SˆMÑ9Ô9Ð9Ø×!Ò! !Ñ$Ô$Ð$Ð$Ð$rA   Úclickedz;

I already have an existing account and want to use that:
r    zŽRestore account from cloud backup to this device. You will need access to
your account password and access to your account email address. [R1]Té   r[   zRestore accountc                 ój   •— ‰j                              d| ¬¦  «         ‰                     d¦  «         d S )NzSELECTED_RESTORE: {res}r›   r   r�   rž   s    €r@   Úon_button22z3ApplicationWindow._setup_page1.<locals>.on_button22  ó6   ø€ ØŒH�MŠMÐ3¸ˆMÑ=Ô=Ð=Ø×!Ò! !Ñ$Ô$Ð$Ð$Ð$rA   z�Synchronize device with other device in account. You will need access to
another device currently connected to your account. [R2]é   zSynchronize accountc                 ój   •— ‰j                              d| ¬¦  «         ‰                     d¦  «         d S )NzSELECTED_SYNCRONIZE: {res}r›   r   r�   rž   s    €r@   Ú
on_button2z2ApplicationWindow._setup_page1.<locals>.on_button2  s6   ø€ ØŒH�MŠMÐ6¸CˆMÑ@Ô@Ð@Ø×!Ò! !Ñ$Ô$Ð$Ð$Ð$rA   ztRecover account from account seed phrase. You only need access to
your 12-24 word account recovery seed phrase. [R3]é   zRecover accountc                 ój   •— ‰j                              d| ¬¦  «         ‰                     d¦  «         d S )NzSELECTED_RECOVER: {res}r›   r    r�   rž   s    €r@   Ú
on_button3z2ApplicationWindow._setup_page1.<locals>.on_button3$  r¤   rA   N)r   ÚGridÚset_row_spacingÚset_column_spacingÚset_margin_topÚset_margin_bottomÚset_margin_startÚset_margin_endÚImageÚset_from_fileÚLOGO_RESOURCEÚattachÚLabelÚset_alignmentÚset_justifyÚJustificationÚLEFTÚButtonÚnew_with_labelÚconnectÚset_line_wrapÚset_width_charsÚappend_page)r?   Úgrid1Úimage1Úlabel0Úlabel1Úbutton1rŸ   Úlabel12Úlabel22Úbutton22r£   Úlabel2Úbutton2r§   Úlabel3Úbutton3rª   s   `                r@   r:   zApplicationWindow._setup_page1Í   sî  ø€ õ ”‘
”
ˆØ×Ò˜bÑ!Ô!Ð!Ø× Ò  Ñ$Ô$Ð$Ø×Ò˜RÑ Ô Ð Ø×Ò Ñ#Ô#Ð#Ø×Ò˜rÑ"Ô"Ð"Ø×Ò˜RÑ Ô Ð å”‘”ˆà×Ò�]Ñ+Ô+Ð+Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”Ð!QÐRÑRÔRˆØ×Ò˜Q Ñ$Ô$Ð$Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”Ð!pÐqÑqÔqˆØ×Ò˜Q Ñ$Ô$Ð$Ø×Ò�3Ô,Ô1Ñ2Ô2Ð2Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”*×+Ò+¨MÑ:Ô:ˆð	%ð 	%ð 	%ð 	%ð 	%ð 	�Š˜	 :Ñ.Ô.Ð.Ø�Š�W˜a  A qÑ)Ô)Ð)å”)Ð"bÐcÑcÔcˆØ×Ò˜a Ñ%Ô%Ð%Ø�Š�W˜a  A qÑ)Ô)Ð)å”)ð #ið jñ jô jˆà×Ò˜a Ñ%Ô%Ð%Ø×Ò�CÔ-Ô2Ñ3Ô3Ð3Ø×Ò˜dÑ#Ô#Ð#Ø×Ò Ñ#Ô#Ð#Ø�Š�W˜a  A qÑ)Ô)Ð)å”:×,Ò,Ð->Ñ?Ô?ˆð	%ð 	%ð 	%ð 	%ð 	%ð 	×Ò˜ KÑ0Ô0Ð0Ø�Š�X˜q ! Q¨Ñ*Ô*Ð*å”ð "\ð ]ñ ]ô ]ˆà×Ò˜Q Ñ$Ô$Ð$Ø×Ò�3Ô,Ô1Ñ2Ô2Ð2Ø×Ò˜TÑ"Ô"Ð"Ø×Ò˜rÑ"Ô"Ð"Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”*×+Ò+Ð,AÑBÔBˆð	%ð 	%ð 	%ð 	%ð 	%ð 	�Š˜	 :Ñ.Ô.Ð.Ø�Š�W˜a  A qÑ)Ô)Ð)å”ð "Vð Wñ Wô Wˆà×Ò˜Q Ñ$Ô$Ð$Ø×Ò�3Ô,Ô1Ñ2Ô2Ð2Ø×Ò˜TÑ"Ô"Ð"Ø×Ò˜rÑ"Ô"Ð"Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”*×+Ò+Ð,=Ñ>Ô>ˆð	%ð 	%ð 	%ð 	%ð 	%ð 	�Š˜	 :Ñ.Ô.Ð.Ø�Š�W˜a  A qÑ)Ô)Ð)à×Ò˜ÑÔÐÐÐrA   c                 óD  ‡ ‡
‡‡‡‡— t          j        ¦   «         }t          j        ¦   «         }t          j        ¦   «         }|                     t
          ¦  «         |                     |¦  «         |                     |¦  «         t           j                             d¦  «        }ˆˆ ˆfd„}| 	                    d|¦  «         |                     |¦  «         t          j
        d¬¦  «        }|                     dd¦  «         |                     t           j        j        ¦  «         |                     |¦  «         t          j        ¦   «         }|                     ¦   «         Š‰                     d¦  «         |                     d	¦  «         |                     t           j        j        ¦  «         |                     d
¦  «         |                     t           j        j        ¦  «         |                     |¦  «         t          j        ¦   «         }t          j        d¬¦  «        Š‰                     d	¦  «         ‰                     d	¦  «         ˆ
fd„}	‰ 	                    d|	¦  «         |                     ‰¦  «         t           j                             d¦  «        Š
‰
                     d	¦  «         t8          ˆ fd„¦   «         Šˆˆˆ fd„Š‰
 	                    d‰¦  «         |                     ‰
¦  «         |                     |¦  «         ‰                      |¦  «         dS )zA
        Setup page shown to generate a new seed phrase.
        zGenerate seedphrasec                 ó’   •— t          dd¬¦  «        ‰_        ‰                     ‰j        ¦  «         ‰                     d¦  «         d S )Né   Úenglish)ÚstrengthÚlanguageT)r   r,   Úset_textÚset_sensitive)Ú_Úcheckbutton2_1r?   Útextbuffer2_1s    €€€r@   Úon_button2_1z4ApplicationWindow._setup_page2.<locals>.on_button2_1<  sI   ø€ Ý$7ÀÈyÐ$YÑ$YÔ$YˆDÔ!Ø×"Ò" 4Ô#8Ñ9Ô9Ð9Ø×(Ò(¨Ñ.Ô.Ð.Ð.Ð.rA   r    zQBackup your new seed phrase in a secure offline location (e.g. on printed paper):r—   r   r™   z




FTzI have backed up my seed phrasec                 ó2   •— ‰                      d¦  «         d S ©NT)rÔ   )rÕ   Ú	button2_2s    €r@   Úon_checkbutton2_1z9ApplicationWindow._setup_page2.<locals>.on_checkbutton2_1X  s   ø€ Ø×#Ò# DÑ)Ô)Ð)Ð)Ð)rA   ÚtoggledÚContinuec              3   óJ  •K  — t          ‰j        d¬¦  «        ‰_        t          j                             ‰j        j        ¦  «        ‰_        t          j	        ‰j        dd …         ¦  «        ‰_
        t          ‰j        j        ¦  «        ‰j        _        t          ‰j        j        ¦  «        ‰j        _        ‰j                             ‰j        ¦  «         ‰j        ‰j        j        ‰j        <   ‰j                             ‰j        ¦  «         ‰j                             d‰j        ‰j        ¬¦  «         ‰j                             ‰j
        ¦  «        V —}t7          |¦  «         |s8‰j                             d‰j        ¬¦  «         ‰                     d¦  «         d S ‰j                             d‰j        |¬	¦  «         t;          j        |d
         ¬¦  «        ‰j        _        ‰j        ‰j        _         |d         ‰j        _!        |d         ‰j        _"        ‰j        ‰j        j        ‰j        <   ‰j                             ‰j        ¦  «         |‰_#        ‰j$         %                    tM          ‰j'        d         ¦  «        ¦  «         ‰                     d¦  «         d S )Nr   )Úindexr   zVXBR ETH key at address {ethadr} set from seed phrase (BIP39 account 0): "{seedphrase}")ÚethadrÚ
seedphraserO   rP   rQ   rR   rƒ   r"   r€   r   rU   r[   )(r   r,   r/   r^   r_   r`   rV   r0   ra   rb   r1   r#   Úkeyr*   r]   r'   Ú
_cskey_rawr~   Úset_ethkey_from_profiler(   Úprofilesr+   Úsaver.   rr   rs   rq   r   ru   r3   r4   rƒ   Ú
member_adrr€   r   r2   rv   rh   rd   Ú_member_data)rÕ   rS   r?   s     €r@   Úon_button2_2z4ApplicationWindow._setup_page2.<locals>.on_button2_2a  sg  øè è € å"9¸$Ô:OÐWXÐ"YÑ"YÔ"YˆDÔÝ!%¤×!<Ò!<¸TÔ=PÔ=XÑ!YÔ!YˆDÔÝ%-Ô%5°dÔ6HÈÈÈÔ6LÑ%MÔ%MˆDÔ"õ #(¨Ô(;Ô(?Ñ"@Ô"@ˆDŒLÔÝ!& t¤|Ô'>Ñ!?Ô!?ˆDŒLÔð ŒL×0Ò0°´Ñ>Ô>Ð>ð 7;´lˆDŒKÔ  Ô!2Ñ3ØŒK×Ò˜TÔ0Ñ1Ô1Ð1àŒH�MŠMÐrØ!%Ô!3Ø%)Ô%:ð ñ <ô <ð <ð !%¤× 7Ò 7¸Ô8NÑ OÔ OÐOÐOˆKÝ�;ÑÔÐØð )Ø”—’ÐJØ,0Ô,>ð ñ @ô @ð @à×%Ò% aÑ(Ô(Ð(Ð(Ð(à”—’Ð]Ø,0Ô,>ÈKð ñ Yô Yð Yõ +/¬)¸+ÀlÔ:SÐ*TÑ*TÔ*T�”Ô'Ø*.Ô*<�”Ô'Ø%0°Ô%9�”Ô"Ø(3°JÔ(?�”Ô%ð ;?¼,�”Ô$ TÔ%6Ñ7Ø”× Ò  Ô!4Ñ5Ô5Ð5à*5�Ô'Ø”×&Ò&¥s¨4Ô+<¸UÔ+CÑ'DÔ'DÑEÔEÐEØ×%Ò% aÑ(Ô(Ð(Ð(Ð(rA   c                 óˆ   •— ‰j                              dt          ‰¦  «        | ¬¦  «         t          j        d‰| ¦  «         d S ©Nz{func}({widget}))ÚfuncÚwidgetr   ©rr   rs   r   r
   Ú	callLater)rî   rê   Úrun_on_button2_2r?   s    €€€r@   rñ   z8ApplicationWindow._setup_page2.<locals>.run_on_button2_2�  sC   ø€ ØŒH�MŠMÐ,µ6Ð:JÑ3KÔ3KÐTZˆMÑ[Ô[Ð[ÝÔ˜a ¨vÑ6Ô6Ð6Ð6Ð6rA   N)r   ÚVBoxÚHBoxr²   r³   r´   Úaddr»   r¼   r½   r¶   r·   r¸   r¹   rº   ÚTextViewÚ
get_bufferrÓ   Úset_editableÚset_justificationÚCENTERÚset_monospaceÚset_wrap_modeÚWrapModeÚWORDÚCheckButtonÚ
set_activerÔ   r	   rÀ   )r?   Úbox2_1Úbox2_2Úimage2_1Ú	button2_1rØ   Úlabel2_1Útextview2_1Úbox2_3rÜ   rÛ   rÖ   rê   rñ   r×   s   `         @@@@@r@   r;   zApplicationWindow._setup_page2.  s	  øøøøøø€ õ ”‘”ˆå”‘”ˆÝ”9‘;”;ˆØ×Ò�}Ñ-Ô-Ð-Ø�
Š
�8ÑÔÐØ�
Š
�6ÑÔÐå”J×-Ò-Ð.CÑDÔDˆ	ð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð
 	×Ò˜) \Ñ2Ô2Ð2Ø�
Š
�9ÑÔÐå”9Ð#vÐwÑwÔwˆØ×Ò˜q #Ñ&Ô&Ð&Ø×Ò�SÔ.Ô3Ñ4Ô4Ð4Ø�
Š
�8ÑÔÐå”l‘n”nˆØ#×.Ò.Ñ0Ô0ˆØ×Ò˜xÑ(Ô(Ð(Ø× Ò  Ñ'Ô'Ð'Ø×%Ò%¥cÔ&7Ô&>Ñ?Ô?Ð?Ø×!Ò! $Ñ'Ô'Ð'Ø×!Ò!¥#¤,Ô"3Ñ4Ô4Ð4Ø�
Š
�;ÑÔÐå”‘”ˆåœÐ/PÐQÑQÔQˆØ×!Ò! %Ñ(Ô(Ð(Ø×$Ò$ UÑ+Ô+Ð+ð	*ð 	*ð 	*ð 	*ð 	*ð 	×Ò˜yÐ*;Ñ<Ô<Ð<Ø�
Š
�>Ñ"Ô"Ð"å”J×-Ò-¨jÑ9Ô9ˆ	Ø×Ò Ñ&Ô&Ð&å	ð)	)ð )	)ð )	)ð )	)ñ 
Œð)	)ðV	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	×Ò˜)Ð%5Ñ6Ô6Ð6Ø�
Š
�9ÑÔÐà�
Š
�6ÑÔÐà×Ò˜Ñ Ô Ð Ð Ð rA   c                 óÄ
  ‡ ‡‡‡‡‡‡‡‡‡‡‡— t          j        ¦   «         }t          j        ¦   «         }t          j        ¦   «         }|                     t
          ¦  «         |                     |¦  «         |                     |¦  «         t          j        ¦   «         }|                     d¦  «         | 	                    d¦  «         | 
                    d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         t          j        d¬¦  «        }|                     |dddd¦  «         t          j        ¦   «         Š‰                     d¦  «         ‰                     d¦  «         ‰                     d¦  «         |                     ‰dddd¦  «         d	d	d	d
œŠˆˆfd„Šd„ Šd„ Šˆˆˆˆfd„}‰                     d|¦  «         t          j        d¬¦  «        }|                     |dddd¦  «         t          j        ¦   «         Š‰                     d¦  «         ‰                     d¦  «         ‰                     d¦  «         ‰                     d¦  «         |                     ‰dddd¦  «         t          j        d¬¦  «        }|                     |dddd¦  «         t          j        ¦   «         Š‰                     d¦  «         ‰                     d¦  «         ‰                     d¦  «         ‰                     d¦  «         |                     ‰dddd¦  «         ˆˆˆˆˆfd„}‰                     d|¦  «         ‰                     d|¦  «         t          j        d¬¦  «        }	|                     |	dddd¦  «         t          j        d¬¦  «        }
|
                     d¦  «         |
                     d¦  «         ˆˆfd„}|
                     d|¦  «         |                     |
dddd¦  «         t          j        d¬¦  «        }	|                     |	dddd¦  «         t          j        d¬¦  «        Š‰                     d¦  «         ‰                     d¦  «         ˆfd„}‰                     d|¦  «         |                     ‰dddd¦  «         t           j                             d¦  «        Š‰                     d¦  «         t6          ˆˆˆ fd „¦   «         Šˆˆˆ fd!„Š‰                     d"‰¦  «         |                     ‰dddd¦  «         |                     |¦  «         ‰                      |¦  «         d	S )#z

        :return:
        r–   zYour email address:r—   r   r   Ú éÿ   é(   N)r€   ÚpasswordÚeulac                  óº   •— t          d¦  «         ‰D ]2} ‰|          €(t          d| ¦  «         ‰                     d¦  «          d S Œ3‰                     d¦  «         d S )NÚ	check_allzcheck failedFT)ÚprintrÔ   )ÚcrÌ   Úcheckss    €€r@   r  z1ApplicationWindow._setup_page3.<locals>.check_all½  sv   ø€ Ý�+ÑÔÐØð ð �Ø˜!”9Ð$Ý˜.¨!Ñ,Ô,Ð,Ø×)Ò)¨%Ñ0Ô0Ð0Ø�F�Fð %ð ×!Ò! $Ñ'Ô'Ð'Ð'Ð'rA   c                 ó   — d| v r| S d S )Nú@© )r€   s    r@   Úcheck_emailz3ApplicationWindow._setup_page3.<locals>.check_emailÆ  s   € Ø�eˆ|ˆ|Ø�à�trA   c                 ó   — dS rÚ   r  )r  s    r@   Úcheck_passwordz6ApplicationWindow._setup_page3.<locals>.check_passwordÌ  s   € Ø�4rA   c                 ó   •—  ‰|                       ¦   «         ¦  «        ‰d<   ‰d         r&‰                     t          j        j        d ¦  «         n4‰                     t          j        j        t          ddd¦  «        ¦  «          ‰¦   «          d S )Nr€   éPÃ  r   ©Úget_textÚ	modify_fgr   Ú
StateFlagsÚNORMALr   )Úentryr  r  r  Úentry1s    €€€€r@   Ú	on_entry1z1ApplicationWindow._setup_page3.<locals>.on_entry1Ï  s�   ø€ à)˜k¨%¯.ª.Ñ*:Ô*:Ñ;Ô;ˆF�7‰OØ�gŒð LØ× Ò ¥¤Ô!6¸Ñ=Ô=Ð=Ð=à× Ò ¥¤Ô!6½¸eÀQÈÑ8JÔ8JÑKÔKÐKØˆI‰KŒKˆKˆKˆKrA   ÚchangedzNew password:FzRepeat new password:r   c                 óØ  •— d} ‰‰                      ¦   «         ¦  «        r(d}‰                     t          j        j        d ¦  «         n4‰                     t          j        j        t          ddd¦  «        ¦  «         d} ‰‰                      ¦   «         ¦  «        r(d}‰                     t          j        j        d ¦  «         n4‰                     t          j        j        t          ddd¦  «        ¦  «         |ra|r_‰                      ¦   «         ‰                      ¦   «         k    r5 ‰‰                      ¦   «         ¦  «        r‰                      ¦   «         ‰d<   nd ‰d<    ‰¦   «          d S )NFTr  r   r  r  )rÕ   Úpw1_okÚpw2_okr  r  r  Úentry2Úentry3s      €€€€€r@   Ú
on_entry23z2ApplicationWindow._setup_page3.<locals>.on_entry23î  sV  ø€ ØˆFØˆ~˜fŸošoÑ/Ô/Ñ0Ô0ð LØ�Ø× Ò ¥¤Ô!6¸Ñ=Ô=Ð=Ð=à× Ò ¥¤Ô!6½¸eÀQÈÑ8JÔ8JÑKÔKÐKàˆFØˆ~˜fŸošoÑ/Ô/Ñ0Ô0ð LØ�Ø× Ò ¥¤Ô!6¸Ñ=Ô=Ð=Ð=à× Ò ¥¤Ô!6½¸eÀQÈÑ8JÔ8JÑKÔKÐKàð *˜&ð * V§_¢_Ñ%6Ô%6¸&¿/º/Ñ:KÔ:KÒ%KÐ%KÐP^ÐP^Ð_e×_nÒ_nÑ_pÔ_pÑPqÔPqÐ%KØ%+§_¢_Ñ%6Ô%6��zÑ"Ð"à%)��zÑ"àˆI‰KŒKˆKˆKˆKrA   zEULA:r    z"I accept the EULA and terms of useTc                 óZ   •— |                       ¦   «         rd‰d<   nd‰d<    ‰¦   «          d S )NTr  F)r’   )Úbuttonr  r  s    €€r@   rŸ   z2ApplicationWindow._setup_page3.<locals>.on_button1  s:   ø€ Ø× Ò Ñ"Ô"ð 'Ø!%��v‘�à!&��v‘ØˆI‰KŒKˆKˆKˆKrA   rÝ   zCloud backup:r[   z5Yes, enable encrypted cloud backup of my private keysc                 ó   •—  ‰¦   «          d S r�   r  )r*  r  s    €r@   r§   z2ApplicationWindow._setup_page3.<locals>.on_button2  s   ø€ ØˆI‰KŒKˆKˆKˆKrA   zRegister accountc              3   óü  •K  — ‰d         ‰_         ‰d         ‰_        ‰                     ¦   «         ‰_        d‰_        d                     ‰j        t          j        dd¦  «        ¦  «        ‰_        ‰j         	                    ‰j
        ¦  «         ‰j                             d‰j         ¬¦  «         ‰j                             d	‰j        ¬
¦  «         ‰j                             d‰j        ¬¦  «         ‰j                             ‰j        ‰j         ¦  «        V —}t          |¦  «         ‰j         ‰j
        _        ‰j        ‰j
        _        t#          t%          j        |d         ¬¦  «        ¦  «        ‰j
        _        t#          t+          j        |d         d¦  «        ¦  «        ‰j
        _        ‰j
        ‰j        j        ‰j        <   ‰j                             ‰j        ¦  «         ‰                     d¦  «         d S )Nr€   r  Ú	anonymousz{}{}r   i'  zinput_email: {input_email})r-   z input_username: {input_username})Úinput_usernamez input_password: {input_password})r.   rt   r"   Ú	timestamprE   r    )r-   r.   r’   Úinput_backup_enabledr.  ry   ÚrandomÚrandintr'   rå   r*   rr   rs   Ú_do_onboard_memberr   r€   r   rd   r3   r4   rt   re   rf   r„   r(   ræ   r+   rç   ru   )rÕ   ÚresultrÊ   r  r?   s     €€€r@   rª   z2ApplicationWindow._setup_page3.<locals>.on_button3(  s§  øè è € à% gœˆDÔØ"(¨Ô"4ˆDÔØ(/×(:Ò(:Ñ(<Ô(<ˆDÔ%Ø"-ˆDÔØ"(§-¢-°Ô0CÅVÄ^ÐTUÐW\ÑE]ÔE]Ñ"^Ô"^ˆDÔàŒL×0Ò0°´Ñ>Ô>Ð>àŒH�MŠMÐ6ÀDÔDTˆMÑUÔUÐUØŒH�MŠMÐ<ÈTÔM`ˆMÑaÔaÐaØŒH�MŠMÐ<ÈTÔM`ˆMÑaÔaÐaØœ<×:Ò:¸4Ô;NÐPTÔP`ÑaÔaÐaÐaˆFÝ�6‰NŒNˆNà!%Ô!1ˆDŒLÔØ$(Ô$7ˆDŒLÔ!Ý'*­4¬9¸6À-Ô;PÐ+QÑ+QÔ+QÑ'RÔ'RˆDŒLÔ$Ý-0µ´¸vÀkÔ?RÐTXÑ1YÔ1YÑ-ZÔ-ZˆDŒLÔ*à6:´lˆDŒKÔ  Ô!2Ñ3ØŒK×Ò˜TÔ0Ñ1Ô1Ð1à×!Ò! !Ñ$Ô$Ð$Ð$Ð$rA   c                 óˆ   •— ‰j                              dt          ‰¦  «        | ¬¦  «         t          j        d‰| ¦  «         d S rì   rï   )rî   rª   Úrun_on_button3r?   s    €€€r@   r6  z6ApplicationWindow._setup_page3.<locals>.run_on_button3B  óB   ø€ ØŒH�MŠMÐ,µ6¸.Ñ3IÔ3IÐRXˆMÑYÔYÐYÝÔ˜a ¨VÑ4Ô4Ð4Ð4Ð4rA   r    )r   rò   ró   r²   r³   r´   rô   r«   r¬   r­   r®   r¯   r°   r±   r¶   rµ   ÚEntryrÓ   Úset_max_lengthÚset_max_width_charsr½   Úset_visibilityrþ   rÿ   rÔ   r»   r¼   r	   rÀ   )r?   Úbox1Úbox2rÂ   rÁ   rÄ   r!  rÉ   r(  rË   rÅ   rŸ   r§   rÊ   rÌ   r  r  r  r  r   r&  r'  rª   r6  s   `            @@@@@@@@@@@r@   r<   zApplicationWindow._setup_page3™  sÔ  øøøøøøøøøøøø€ õ
 Œx‰zŒzˆåŒx‰zŒzˆÝ”‘”ˆØ×Ò�]Ñ+Ô+Ð+Ø�Š�ÑÔÐØ�Š�‰Œˆå”‘
”
ˆØ×Ò˜bÑ!Ô!Ð!Ø× Ò  Ñ$Ô$Ð$Ø×Ò˜RÑ Ô Ð Ø×Ò Ñ#Ô#Ð#Ø×Ò˜rÑ"Ô"Ð"Ø×Ò˜RÑ Ô Ð å”Ð!6Ð7Ñ7Ô7ˆØ�Š�V˜Q  1 aÑ(Ô(Ð(å”‘”ˆØ�Š˜ÑÔÐØ×Ò˜cÑ"Ô"Ð"Ø×"Ò" 2Ñ&Ô&Ð&Ø�Š�V˜Q  1 aÑ(Ô(Ð(ð ØØð
ð 
ˆð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	�Š�y )Ñ,Ô,Ð,å” Ð1Ñ1Ô1ˆØ�Š�V˜Q  1 aÑ(Ô(Ð(å”‘”ˆØ�Š˜ÑÔÐØ×Ò˜bÑ!Ô!Ð!Ø×"Ò" 2Ñ&Ô&Ð&Ø×Ò˜eÑ$Ô$Ð$Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”Ð!7Ð8Ñ8Ô8ˆØ�Š�V˜Q  1 aÑ(Ô(Ð(å”‘”ˆØ�Š˜ÑÔÐØ×Ò˜bÑ!Ô!Ð!Ø×"Ò" 2Ñ&Ô&Ð&Ø×Ò˜eÑ$Ô$Ð$Ø�Š�V˜Q  1 aÑ(Ô(Ð(ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð, 	�Š�y *Ñ-Ô-Ð-Ø�Š�y *Ñ-Ô-Ð-å” Ð)Ñ)Ô)ˆØ�Š�V˜Q  1 aÑ(Ô(Ð(å”/Ð(LÐMÑMÔMˆØ×Ò˜5Ñ!Ô!Ð!Ø×Ò˜dÑ#Ô#Ð#ð	ð 	ð 	ð 	ð 	ð 	ð 	�Š˜	 :Ñ.Ô.Ð.Ø�Š�W˜a  A qÑ)Ô)Ð)å” Ð1Ñ1Ô1ˆØ�Š�V˜Q  1 aÑ(Ô(Ð(å”/Ð(_Ð`Ñ`Ô`ˆØ×Ò˜5Ñ!Ô!Ð!Ø×Ò˜dÑ#Ô#Ð#ð	ð 	ð 	ð 	ð 	ð 	�Š˜	 :Ñ.Ô.Ð.Ø�Š�W˜a  A qÑ)Ô)Ð)å”*×+Ò+Ð,>Ñ?Ô?ˆØ×Ò˜eÑ$Ô$Ð$å	ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ñ 
Œð	%ð2	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	�Š˜	 >Ñ2Ô2Ð2Ø�Š�W˜a  A qÑ)Ô)Ð)à�Š�‰Œˆà×Ò˜ÑÔÐÐÐrA   c                 óx  ‡ ‡	‡
‡‡— t          j        ¦   «         }t          j        ¦   «         }t          j        ¦   «         }|                     t
          ¦  «         |                     |¦  «         |                     |¦  «         t          j        ¦   «         }t          j        d¬¦  «        }t          j        d¬¦  «        }|                     |¦  «         |                     |¦  «         |                     |¦  «         t          j        d¬¦  «        }|                     |¦  «         t          j        ¦   «         Š
‰
 	                    d¦  «         ‰
 
                    d¦  «         ‰
                     d¦  «         |                     ‰
¦  «         ˆ	ˆ
fd„}‰
                     d	|¦  «         t           j                             d
¦  «        Š	‰	                     d¦  «         t           ˆ
ˆ fd„¦   «         Šˆˆˆ fd„Š‰	                     d‰¦  «         |                     ‰	¦  «         ‰                      |¦  «         dS )a*  
        Page shown when member registration request was submitted, a verification email
        sent, and the verification request ID returned.
        The user now should check the email inbox for the received verification code,
        and continue verifying the code.

        :return:
        z4Member registration submitted, verification request:r—   z$8d5d7ffd-23d9-45a0-a686-00a49f29d3cdzMPlease check your email inbox, and enter the verification code received here:r  r	  r
  c                 óX  •— t          |                      ¦   «         ¦  «        }|r<‰                     t          j        j        d ¦  «         ‰                     d¦  «         d S ‰                     t          j        j        t          ddd¦  «        ¦  «         ‰                     d¦  «         d S )NTr  r   F)r   r  r  r   r  r  rÔ   r   )r  Úvaction_coderÅ   r   s     €€r@   r!  z1ApplicationWindow._setup_page4.<locals>.on_entry1o  s˜   ø€ å0°·²Ñ1AÔ1AÑBÔBˆLØð -Ø× Ò ¥¤Ô!6¸Ñ=Ô=Ð=Ø×%Ò% dÑ+Ô+Ð+Ð+Ð+à× Ò ¥¤Ô!6½¸eÀQÈÑ8JÔ8JÑKÔKÐKØ×%Ò% eÑ,Ô,Ð,Ð,Ð,rA   r"  ÚVerifyFc              3   óV  •K  — t          ‰                     ¦   «         ¦  «        }|r'd                     |                     ¦   «         ¦  «        }t	          ‰j        j        ¦  «        t          k    rt          j	        ‰j        j        ¦  «        }n‰j        j        }‰j
                             ||¦  «        V —}t          |¦  «         t          t          j        |d         d¦  «        ¦  «        ‰j        _        dt          t!          j        |d         ¦  «                             ¦   «         ¦  «        z   ‰j        _        t          t          j	        |d         ¬¦  «        ¦  «        ‰j        _        ‰j        ‰j        j        ‰j        <   ‰j                             ‰j        ¦  «         d S )Nú-rT   rE   rK   Útransactionrƒ   r"   )r   r  ÚjoinÚgroupsÚtyper*   rt   rd   r3   r4   r'   Ú_do_onboard_member_verifyr   re   rf   r…   ra   rn   ro   Úvaction_transactionrƒ   r(   ræ   r+   rç   r.   )rÕ   r@  rt   r4  r   r?   s       €€r@   rŸ   z2ApplicationWindow._setup_page4.<locals>.on_button1~  sR  øè è € å0°·²Ñ1BÔ1BÑCÔCˆLØð ?Ø"Ÿxšx¨×(;Ò(;Ñ(=Ô(=Ñ>Ô>�Ý�D”LÔ,Ñ-Ô-µÒ4Ð4Ý"œi¨¬Ô(@ÑAÔA��à"œlÔ6�Øœ<×AÒAÀ+È|Ñ\Ô\Ð\Ð\ˆFÝ�6‰NŒNˆNå,/µ´¸fÀYÔ>OÐQUÑ0VÔ0VÑ,WÔ,WˆDŒLÔ)Ø/3µc½(Ô:JÈ6ÐR_ÔK`Ñ:aÔ:a×:hÒ:hÑ:jÔ:jÑ6kÔ6kÑ/kˆDŒLÔ,Ý&)­$¬)¸&ÀÔ:NÐ*OÑ*OÔ*OÑ&PÔ&PˆDŒLÔ#Ø6:´lˆDŒKÔ  Ô!2Ñ3ØŒK×Ò˜TÔ0Ñ1Ô1Ð1Ð1Ð1rA   c                 óˆ   •— ‰j                              dt          ‰¦  «        | ¬¦  «         t          j        d‰| ¦  «         d S rì   rï   )rî   rŸ   Úrun_on_button1r?   s    €€€r@   rK  z6ApplicationWindow._setup_page4.<locals>.run_on_button1�  r7  rA   r    N)r   rò   ró   r²   r³   r´   rô   r¶   r8  rÓ   r9  r:  r½   r»   r¼   rÔ   r	   rÀ   )r?   r<  r=  rÂ   Úbox3rÄ   rÉ   rË   r!  rÅ   r   rŸ   rK  s   `        @@@@r@   r=   zApplicationWindow._setup_page4N  s)  øøøøø€ õ Œx‰zŒzˆåŒx‰zŒzˆÝ”‘”ˆØ×Ò�]Ñ+Ô+Ð+Ø�Š�ÑÔÐØ�Š�‰ŒˆåŒx‰zŒzˆÝ”Ð!WÐXÑXÔXˆÝ”Ð!GÐHÑHÔHˆØ�Š�ÑÔÐØ�Š�ÑÔÐØ�Š�‰Œˆå”Ð!pÐqÑqÔqˆØ�Š�ÑÔÐå”‘”ˆØ�Š˜ÑÔÐØ×Ò˜cÑ"Ô"Ð"Ø×"Ò" 2Ñ&Ô&Ð&Ø�Š�ÑÔÐð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	�Š�y )Ñ,Ô,Ð,å”*×+Ò+¨HÑ5Ô5ˆØ×Ò˜eÑ$Ô$Ð$å	ð	2ð 	2ð 	2ð 	2ð 	2ñ 
Œð	2ð"	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	�Š˜	 >Ñ2Ô2Ð2Ø�Š�ÑÔÐà×Ò˜ÑÔÐÐÐrA   c                 ó  — t          j        ¦   «         }t          j        ¦   «         }t          j        ¦   «         }|                     t
          ¦  «         |                     |¦  «         |                     |¦  «         t          j        ¦   «         }|                     d¦  «         | 	                    d¦  «         | 
                    d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         d}t          j        d¬¦  «        }|                     dd¦  «         |                     |d|dd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d¦  «         |                     | j        d|dd¦  «         |dz  }t          j        d¬¦  «        }|                     dd¦  «         |                     |d|dd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d	¦  «         |                     | j        d|dd¦  «         |dz  }t          j        d
¬¦  «        }|                     dd¦  «         |                     |d|dd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d¦  «         |                     | j        d|dd¦  «         |dz  }t          j        d¬¦  «        }	|	                     dd¦  «         |                     |	d|dd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d	¦  «         |                     | j        d|dd¦  «         |dz  }t          j        d¬¦  «        }
|
                     dd¦  «         |                     |
d|dd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d	¦  «         |                     | j        d|dd¦  «         |dz  }t          j        d¬¦  «        }|                     dd¦  «         |                     |d|dd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d	¦  «         |                     | j        d|dd¦  «         |dz  }t          j        d¬¦  «        }|                     dd¦  «         |                     |d|dd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d	¦  «         |                     | j        d|dd¦  «         |dz  }|                     |¦  «         t          j        ¦   «         }|                     d¦  «         | 	                    d¦  «         | 
                    d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     |dddd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d	¦  «         |                     | j        dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     |dddd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         | j                             d	¦  «         |                     | j        dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     |dddd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         |                     | j        dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     |dddd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         |                     | j        dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     |dddd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         |                     | j        dddd¦  «         t          j        d¬¦  «        }|                     dd¦  «         |                     |dddd¦  «         t          j        ¦   «         | _        | j                             dd¦  «         |                     | j        dddd¦  «         |                     |¦  «         |                      |¦  «         dS )zc
        Page shown for a user (private eth key) that already is member.

        :return:
        r–   r   zCurrent server time:r—   r   r™   FzBlockchain ID:TzService status:zXBRNetwork contract:zXBRToken contract:zCurrent block hash:zCurrent block number:zUser ID:zEth Address:zAccount Created:r   zMembership:r    zETH Balance:r[   zXBR Balance:r¥   N) r   rò   ró   r²   r³   r´   rô   r«   r¬   r­   r®   r¯   r°   r±   r¶   r·   rµ   rg   Úset_selectableri   rj   rk   rl   rm   rp   rv   rw   rx   rz   r{   r|   rÀ   )r?   r<  r=  rÂ   Úgrid2Úgrid2_yÚlabel5_now_titleÚlabel5_chain_titleÚlabel5_status_titleÚlabel5_xbrnetwork_titleÚlabel5_xbrtoken_titleÚlabel5_blockhash_titleÚlabel5_blocknumber_titlerÁ   rÄ   rË   Úlabel5Úlabel7Úlabel9Úlabel11s                       r@   r>   zApplicationWindow._setup_page5š  s‰	  € õ Œx‰zŒzˆåŒx‰zŒzˆÝ”‘”ˆØ×Ò�]Ñ+Ô+Ð+Ø�Š�ÑÔÐØ�Š�‰Œˆå”‘
”
ˆØ×Ò˜bÑ!Ô!Ð!Ø× Ò  Ñ$Ô$Ð$Ø×Ò˜RÑ Ô Ð Ø×Ò Ñ#Ô#Ð#Ø×Ò˜rÑ"Ô"Ð"Ø×Ò˜RÑ Ô Ð àˆõ œ9Ð+AÐBÑBÔBÐØ×&Ò& q¨#Ñ.Ô.Ð.Ø�ŠÐ% q¨'°1°aÑ8Ô8Ð8Ýœ9™;œ;ˆÔØÔ×&Ò& q¨#Ñ.Ô.Ð.ØÔ×'Ò'¨Ñ.Ô.Ð.Ø�Š�TÔ% q¨'°1°aÑ8Ô8Ð8Ø�1‰ˆõ !œYÐ-=Ð>Ñ>Ô>ÐØ×(Ò(¨¨CÑ0Ô0Ð0Ø�ŠÐ'¨¨G°Q¸Ñ:Ô:Ð:Ý œY™[œ[ˆÔØÔ×(Ò(¨¨CÑ0Ô0Ð0ØÔ×)Ò)¨$Ñ/Ô/Ð/Ø�Š�TÔ'¨¨G°Q¸Ñ:Ô:Ð:Ø�1‰ˆõ "œiÐ.?Ð@Ñ@Ô@ÐØ×)Ò)¨!¨SÑ1Ô1Ð1Ø�ŠÐ(¨!¨W°a¸Ñ;Ô;Ð;Ý!œi™kœkˆÔØÔ×)Ò)¨!¨SÑ1Ô1Ð1ØÔ×*Ò*¨5Ñ1Ô1Ð1Ø�Š�TÔ(¨!¨W°a¸Ñ;Ô;Ð;Ø�1‰ˆõ #&¤)Ð2HÐ"IÑ"IÔ"IÐØ×-Ò-¨a°Ñ5Ô5Ð5Ø�ŠÐ,¨a°¸!¸QÑ?Ô?Ð?Ý"%¤)¡+¤+ˆÔØÔ×-Ò-¨a°Ñ5Ô5Ð5ØÔ×.Ò.¨tÑ4Ô4Ð4Ø�Š�TÔ,¨a°¸!¸QÑ?Ô?Ð?Ø�1‰ˆõ !$¤	Ð0DÐ EÑ EÔ EÐØ×+Ò+¨A¨sÑ3Ô3Ð3Ø�ŠÐ*¨A¨w¸¸1Ñ=Ô=Ð=Ý #¤	¡¤ˆÔØÔ×+Ò+¨A¨sÑ3Ô3Ð3ØÔ×,Ò,¨TÑ2Ô2Ð2Ø�Š�TÔ*¨A¨w¸¸1Ñ=Ô=Ð=Ø�1‰ˆõ "%¤Ð1FÐ!GÑ!GÔ!GÐØ×,Ò,¨Q°Ñ4Ô4Ð4Ø�ŠÐ+¨Q°¸¸AÑ>Ô>Ð>Ý!$¤¡¤ˆÔØÔ×,Ò,¨Q°Ñ4Ô4Ð4ØÔ×-Ò-¨dÑ3Ô3Ð3Ø�Š�TÔ+¨Q°¸¸AÑ>Ô>Ð>Ø�1‰ˆõ $'¤9Ð3JÐ#KÑ#KÔ#KÐ Ø ×.Ò.¨q°#Ñ6Ô6Ð6Ø�ŠÐ-¨q°'¸1¸aÑ@Ô@Ð@Ý#&¤9¡;¤;ˆÔ ØÔ ×.Ò.¨q°#Ñ6Ô6Ð6ØÔ ×/Ò/°Ñ5Ô5Ð5Ø�Š�TÔ-¨q°'¸1¸aÑ@Ô@Ð@Ø�1‰ˆà�Š�‰Œˆå”‘
”
ˆØ×Ò˜bÑ!Ô!Ð!Ø× Ò  Ñ$Ô$Ð$Ø×Ò˜RÑ Ô Ð Ø×Ò Ñ#Ô#Ð#Ø×Ò˜rÑ"Ô"Ð"Ø×Ò˜RÑ Ô Ð å” Ð,Ñ,Ô,ˆØ×Ò˜Q Ñ$Ô$Ð$Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”y‘{”{ˆŒØŒ×"Ò" 1 cÑ*Ô*Ð*ØŒ×#Ò# DÑ)Ô)Ð)Ø�Š�T”\ 1 a¨¨AÑ.Ô.Ð.å” Ð0Ñ0Ô0ˆØ×Ò˜Q Ñ$Ô$Ð$Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”y‘{”{ˆŒØŒ×"Ò" 1 cÑ*Ô*Ð*ØŒ×#Ò# DÑ)Ô)Ð)Ø�Š�T”\ 1 a¨¨AÑ.Ô.Ð.å”Ð!3Ð4Ñ4Ô4ˆØ×Ò˜Q Ñ$Ô$Ð$Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”y‘{”{ˆŒØŒ×"Ò" 1 cÑ*Ô*Ð*Ø�Š�T”\ 1 a¨¨AÑ.Ô.Ð.å” Ð/Ñ/Ô/ˆØ×Ò˜Q Ñ$Ô$Ð$Ø�Š�V˜Q  1 aÑ(Ô(Ð(å”y‘{”{ˆŒØŒ×"Ò" 1 cÑ*Ô*Ð*Ø�Š�T”\ 1 a¨¨AÑ.Ô.Ð.å” Ð0Ñ0Ô0ˆØ×Ò˜Q Ñ$Ô$Ð$Ø�Š�V˜Q  1 aÑ(Ô(Ð(åœ	™œˆŒØŒ×#Ò# A sÑ+Ô+Ð+Ø�Š�T”] A q¨!¨QÑ/Ô/Ð/å”) .Ð1Ñ1Ô1ˆØ×Ò˜a Ñ%Ô%Ð%Ø�Š�W˜a  A qÑ)Ô)Ð)åœ	™œˆŒØŒ×#Ò# A sÑ+Ô+Ð+Ø�Š�T”] A q¨!¨QÑ/Ô/Ð/à�Š�‰Œˆà×Ò˜ÑÔÐÐÐrA   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚtxaioÚmake_loggerrr   ÚSELECTED_NONEÚSELECTED_NEWÚSELECTED_SYNCRONIZEÚSELECTED_RECOVERr&   r	   r�   r”   r:   r;   r<   r=   r>   r  rA   r@   r   r   H   sç   € € € € € ðð ð  ˆ%Ô
Ñ
Ô
€Cà€MØ€LØÐØÐðð ð ðB ðE%ð E%ñ „_ðE%ðNHð Hð Hð^ ð ^ ð ^ ðBh!ð h!ð h!ðVrð rð rðjIð Ið IðXcð cð cð cð crA   r   c                   ó@   — e Zd Zd„ Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚApplicationClientc           	   ƒ   óH  K  — | j                              dt          |j        ¦  «        t          |j        ¦  «        t          |j        ¦  «        t          |j        ¦  «        |¬¦  «         d| j        j        v r)t          j
        | j        j        d         | |f¦  «         d S d S )NzbOk, client joined on realm "{realm}" [session={session}, authid="{authid}", authrole="{authrole}"])Úrealmr'   ÚauthidÚauthroleÚdetailsÚready)rr   rs   r   ri  r'   rj  rk  r(   Úextrar`  Úresolve)r?   rl  s     r@   ÚonJoinzApplicationClient.onJoinA  sž   è è € ØŒ�ŠÐzÝ  ¤Ñ/Ô/Ý" 7¤?Ñ3Ô3Ý! '¤.Ñ1Ô1Ý# GÔ$4Ñ5Ô5Ø%ð 	ñ 	'ô 	'ð 	'ð �d”kÔ'Ð'Ð'ÝŒM˜$œ+Ô+¨GÔ4°t¸W°oÑFÔFÐFÐFÐFð (Ð'rA   c              #   óÌ   K  — |                       ¦   «         r3|                      d¦  «        V —}|                      d¦  «        V —}||dœS | j                             d¦  «         d S )Nzxbr.network.get_configzxbr.network.get_status)r(   rC   z(not connected: could not retrieve status)Úis_attachedÚcallrr   Úwarn)r?   r(   rC   s      r@   rc   zApplicationClient.get_statusK  st   è è € à×ÒÑÔð 	FØŸ9š9Ð%=Ñ>Ô>Ð>Ð>ˆFØŸ9š9Ð%=Ñ>Ô>Ð>Ð>ˆFØ$°Ð7Ð7Ð7àŒH�MŠMÐDÑEÔEÐEÐEÐErA   c           	   #   óÞ  K  — |                       ¦   «         �r¹|                      d|¦  «        V —}|�r€|                      d|¦  «        V —}t          j                             |d         ¦  «        |d<   t          j        |d         ¬¦  «        |d<   t          j                             t          |d         d         ¦  «        d¦  «        |d         d<   t          j                             t          |d         d	         ¦  «        d¦  «        |d         d	<   t          j
        |d
         d¦  «        |d
<   |d         }ddddddœ                     |d ¦  «        |d<   | j                             dt          |d         ¦  «        t          |d         ¦  «        t          |d         ¦  «        ¬¦  «         |S | j                             d|¬¦  «         d S | j                             d|¬¦  «         d S )Nzxbr.network.is_memberz xbr.network.get_member_by_walletrV   rU   r"   rX   rY   ÚetherrZ   rT   rE   rW   ÚACTIVEÚVERIFIEDÚRETIREDÚPENALTYÚBLOCKED)r   r   r    r[   r¥   zZMember {member_oid} found for address 0x{member_adr} - current member level {member_level})Úmember_levelrƒ   rè   z:Address {output_ethadr} is not a member in the XBR networkrP   zInot connected: could not retrieve member data for address {output_ethadr})rr  rs  r^   r_   r`   r3   r4   ÚfromWeir   re   rf   Úgetrr   rs   r   r   rt  )r?   Ú
ethadr_rawÚ	is_memberrS   r|  s        r@   rq   zApplicationClient.get_memberT  s  è è € à×ÒÑÔñ '	4Ø"ŸišiÐ(?ÀÑLÔLÐLÐLˆIØñ "8Ø$(§I¢IÐ.PÐR\Ñ$]Ô$]Ð]Ð]�å)-¬×)DÒ)DÀ[ÐQZÔE[Ñ)\Ô)\�˜IÑ&Ý%)¤Y°[ÀÔ5GÐ%HÑ%HÔ%H�˜EÑ"Ý04´	×0AÒ0AÅ.ÐQ\Ð]fÔQgÐhmÔQnÑBoÔBoØBIñ1Kô 1K�˜IÔ& uÑ-å04´	×0AÒ0AÅ.ÐQ\Ð]fÔQgÐhmÔQnÑBoÔBoØBIñ1Kô 1K�˜IÔ& uÑ-å)+¬°{À9Ô7MÈtÑ)TÔ)T�˜IÑ&à*¨7Ô3�ð  à!à à à ð(ð (÷ ’#�l DÑ)Ô)ð ˜GÑ$ð ”—’ØpÝ!& {°7Ô';Ñ!<Ô!<Ý# K°Ô$6Ñ7Ô7Ý$ [°Ô%;Ñ<Ô<ð	 ñ >ô >ð >ð #Ð"à”—’ÐZØ,6ð ñ 8ô 8ð 8ð 8ð 8ð ŒH�MŠMÐeØ(2ð ñ 4ô 4ð 4ð 4ð 4rA   N)r\  r]  r^  rp  r	   rc   rq   r  rA   r@   rg  rg  @  s_   € € € € € ðGð Gð Gð ðFð Fñ „_ðFð ð(4ð (4ñ „_ð(4ð (4ð (4rA   rg  c                   ó    — e Zd ZdZ ej        ¦   «         Zej         	                    ej         
                    d¦  «        ¦  «        ZdZdd„ZdS )ÚApplicationz&
    Main XBR member application.
    z~/.xbrnetworkz
config.iniNc           	   ƒ   ó¬  ‡ ‡K  — t          j        d¬¦  «         ‰ j                             d|¬¦  «         t          j                             ‰ j        ¦  «        s:t	          j        ‰ j        ¦  «         ‰ j                             d‰ j        ¬¦  «         t          j         	                    ‰ j        ‰ j
        ¦  «        x‰ _        }|pd‰ _        t          j                             ‰ j        ¦  «        sC‰ j                             d‰ j        ¬	¦  «         t          ‰ j        ¦  «        ‰ _        d
‰ _        �nt          ‰ j        ¦  «        ‰ _        d„ }‰ j                             |¬¦  «         ‰ j        ‰ j        j        vrEt'          j        d                     ‰ j        |t-          ‰ j        j        ¦  «        ¦  «        ¦  «        ‚‰ j        j        ‰ j                 ‰ _        ‰ j                             d‰ j        ‰ j        ¬¦  «         t/          ‰ j                             ¦   «         ¦  «         t3          d¦  «         t          j        ¦   «         t          j        ¦   «         d‰ j        ‰ j        ‰ j        ‰ j        dœŠ|p ‰ j        r‰ j        j        r‰ j        j        nd}|p ‰ j        r‰ j        j        r‰ j        j        nd}t;          ||‰t=          ¦   «         g¬¦  «        }	‰ j                             d||¬¦  «         |	                     t@          |dd¬¦  «        ƒ d
{V —† ‰ j                             d¦  «         ‰d         ƒ d
{V —†\  }
}‰ j                             d|¬¦  «         ˆˆ fd„}tC          ||
‰ j        ‰ j        ‰ j        ‰ j        ¦  «        }| "                    d|¦  «         | "                    d |¦  «         | #                    ¦   «          | $                    ¦   «         ƒ d
{V —† d!}‰d"         r>|d#z  }‰ j                             d$|¬%¦  «         tK          d&¦  «        ƒ d
{V —† ‰d"         °>‰ j                             d'¦  «         d
S )(a�  
        Start main application. This will read the user configuration, potentially asking
        for a user password.

        :param reactor: Twisted reactor to use.
        :param url: Optionally override network URL as defined in profile.
        :param realm: Optionally override network URL as defined in profile.
        :param profile: User profile name to load.
        :return:
        rs   )rW   z5ok, application starting for user profile "{profile}")r*   zdotdir created: "{dotdir}")ÚdotdirÚdefaultz%no config exist under "{config_path}")r)   Nc                  ó   — dS )NÚ	123secretr  r  rA   r@   Úgetpwz Application.start.<locals>.getpw¦  s   € Ø"�{rA   )Úcb_get_passwordz4no such profile "{}" in config "{}" with {} profilesz<user profile "{profile_name}" loaded from "{config_path}":

)r)   r+   z

T)rm  ÚdoneÚrunningr(   r)   r*   r+   r\   rI   )Úurlri  rn  ÚserializerszIok, now connecting to "{network_url}", joining realm "{network_realm}" ..)r�   r‚   F)r
   Úauto_reconnectÚstart_reactorz!ok, application client connected!rm  z)ok, application session joined: {details})rl  c                 ó|   •— ‰j                              d¦  «         d‰d<   t          j        ‰d         d ¦  «         d S )Nzexiting application ..Fr‹  rŠ  )rr   rs   r`  ro  )rÕ   rn  r?   s    €€r@   Úon_exitz"Application.start.<locals>.on_exitÓ  s>   ø€ ØŒH�MŠMÐ2Ñ3Ô3Ð3Ø$ˆE�)ÑÝŒM˜% œ-¨Ñ.Ô.Ð.Ð.Ð.rA   ÚcancelÚdestroyr   r‹  r   z7ok, application main task still running at tick {ticks})Úticksr¥   z ok, application main task ended!)&r`  Ústart_loggingrr   rs   Úosr}   ÚisdirÚDOTDIRÚmkdirrE  ÚDOTFILEÚ_config_pathÚ_profile_nameÚisfiler   Ú_configÚ_profileÚloadræ   ÚclickÚClickExceptionry   Úlenr   Úmarshalr  Úcreate_futurer�   r‚   r   r   Úrunrg  r   r½   Úshow_allr�   r   )r?   r
   rŒ  ri  r*   r)   rˆ  r�   r‚   Úrunnerr'   rl  r‘  Úwinr”  rn  s   `              @r@   r�   zApplication.start‰  s¾  øøè è € õ 	Ô &Ð)Ñ)Ô)Ð)àŒ�ŠÐMÐW^ˆÑ_Ô_Ð_åŒw�}Š}˜Tœ[Ñ)Ô)ð 	LÝŒH�T”[Ñ!Ô!Ð!ØŒH�MŠMÐ6¸t¼{ˆMÑKÔKÐKå*,¬'¯,ª,°t´{ÀDÄLÑ*QÔ*QÐQˆÔ˜KØ$Ð1¨	ˆÔÝŒw�~Š~˜dÔ/Ñ0Ô0ð 	ØŒH�MŠMÐAÈtÔO`ˆMÑaÔaÐaÝ% dÔ&7Ñ8Ô8ˆDŒLØ ˆDŒM‰Må% dÔ&7Ñ8Ô8ˆDŒLð#ð #ð #ð ŒL×Ò¨eÐÑ4Ô4Ð4ØÔ!¨¬Ô)>Ð>Ð>ÝÔ*Ð+a×+hÒ+hÐimÔi{ð  ~Iõ  KNð  OSô  O[ô  Odñ  Keô  Keñ  ,fô  ,fñ  gô  gð  gà $¤Ô 5°dÔ6HÔ I�”Ø”—’Ð^Ø*.Ô*;È$ÔJ\ð ñ ^ô ^ð ^å�t”}×,Ò,Ñ.Ô.Ñ/Ô/Ð/Ý�f‘”�õ Ô(Ñ*Ô*ÝÔ'Ñ)Ô)ØØ”lØÔ,Ø”}Ø Ô.ð
ð 
ˆð ð  F¸4¼=ð  EÈTÌ]ÔMfð  E˜dœmÔ7Ð7ð  mEˆð ð  BÀÄð  #AÐSWÔS`ÔSnð  #A $¤-Ô"=Ð"=ð  uAˆå" {Ø)6Ø).Ý0>Ñ0@Ô0@Ð/AðCñ Cô Cˆð
 	Œ�ŠÐaØ"-Ø$1ð 	ñ 	3ô 	3ð 	3ð �jŠjÕ*Ø!(Ø(,Ø',ð ñ .ô .ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	Œ�ŠÐ9Ñ:Ô:Ð:à!& w¤Ð/Ð/Ð/Ð/Ð/Ð/Ñˆ�ØŒ�ŠÐAÈ7ˆÑSÔSÐSð	/ð 	/ð 	/ð 	/ð 	/ð 	/õ
   ¨°$´,ÀÔ@QÐSWÔS`ÐbfÔbtÑuÔuˆØ�Š�H˜gÑ&Ô&Ð&Ø�Š�I˜wÑ'Ô'Ð'Ø�Š‰Œˆà�iŠi‰kŒkÐÐÐÐÐÐÐàˆØ�IÔð 	Ø�Q‰JˆEØŒH�MŠMÐSÐ[`ˆMÑaÔaÐaÝ˜‘(”(ˆNˆNˆNˆNˆNˆNˆNð �IÔð 	ð
 	Œ�ŠÐ8Ñ9Ô9Ð9Ð9Ð9rA   )NNN)r\  r]  r^  r_  r`  ra  rr   r–  r}   ÚabspathÚ
expanduserr˜  rš  r�   r  rA   r@   r‚  r‚  €  sr   € € € € € ðð ð ˆ%Ô
Ñ
Ô
€CàŒW�_Š_˜RœW×/Ò/°Ñ@Ô@ÑAÔA€FØ€Gð\:ð \:ð \:ð \:ð \:ð \:rA   r‚  c              ƒ   ód   K  — t          ¦   «         }|                     | |||¬¦  «        ƒ d{V —† dS )aG  
    Load the named user profile (or create a new one), overriding URL/realm,
    connect to a network node, and start the network member on-boarding.

    If the user credentials are already for a member, fetch member information
    and display member page.

    :param reactor: Twisted reactor to use.
    :param url: Override network URL from user profile with this value.
    :param realm: Override network realm from user profile with this value.
    :param profile: Name of user profile within user
        configuration to load (eg from ``$HOME/.xbrnetwork/config.ini``)
    )rŒ  ri  r*   N)r‚  r�   )r
   rŒ  ri  r*   Úapps        r@   Úmainr®  è  sC   è è € õ ‰-Œ-€CØ
�)Š)�G ¨E¸7ˆ)Ñ
CÔ
CÐCÐCÐCÐCÐCÐCÐCÐCÐCrA   c                  ó\  — t          j        ¦   «         } |                      ddt          dd¬¦  «         |                      ddt          dd¬¦  «         |                      d	d
t          dd¬¦  «         |                      ¦   «         }t          t          |j        |j        |j	        f¦  «         dS )a�  
    GUI entry point, parsing command line arguments and then starting the
    actual main GUI program with parsed parameters.

    To use, run:

    .. code:: console

        xbrnetwork-ui --profile default --url ws://localhost:8090/ws --realm xbrnetwork

    This will load the user profile ``"default"`` from the user configuration, but
    overriding any network URL and realm found therin.
    z--urlrŒ  Nz;The router URL to connect to, e.g. "ws://localhost:8090/ws")ÚdestrG  r…  Úhelpz--realmri  z$The realm to join, e.g. "xbrnetwork"z	--profiler*   r…  z'The user profile to use, e.g. "default")
ÚargparseÚArgumentParserÚadd_argumentrd   Ú
parse_argsr   r®  rŒ  ri  r*   )ÚparserÚargss     r@   Ú_mainr¸  ú  sÖ   € õ Ô$Ñ&Ô&€Fà
×Ò˜Ø"Ý Ø $ØZð	 ñ \ô \ð \ð ×Ò˜	Ø$Ý Ø $ØCð	 ñ Eô Eð Eð ×Ò˜Ø&Ý Ø )ØFð	 ñ Hô Hð Hð ×ÒÑÔ€Då	�$�”˜4œ: t¤|Ð5Ñ6Ô6Ð6Ð6Ð6rA   Ú__main__)Br–  r²  r3   ra   r1  Úpkg_resourcesr   Útimer   ÚgiÚrequire_versionÚgi.repositoryr   Úgi.repository.Gdkr   Útwisted.internetr   Úinstallr`  Úuse_twistedÚtwisted.internet.taskr   Útwisted.internet.deferr	   r
   r^   Únumpyre   r¡  Úhumanizer   r   Úautobahn.utilr   r   r   r   Úautobahn.wamp.serializerr   Úautobahn.twisted.utilr   Úautobahn.twisted.wampr   Úautobahn.xbrr   r   r   r   Úautobahn.xbr._clir   Úautobahn.xbr._configr   r   Úresource_filenamer´   r  r}   r�  r%   r   rg  Úobjectr‚  r®  r¸  r\  r  rA   r@   ú<module>rÐ     s  ðð6 
€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à 	€	€	€	à €Ô �5˜%Ñ  Ô  Ð  Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #à (Ð (Ð (Ð (Ð (Ð (Ø €Ô Ñ Ô Ð à €€€Ø €Ô Ñ Ô Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø $Ð $Ð $Ð $Ð $Ð $à €€€à Ð Ð Ð à €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZØ $Ð $Ð $Ð $Ð $Ð $Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à/�Ô/°
Ð<PÑQÔQ€Ø €€m�R”W—^’^ MÑ2Ô2Ñ 3Ô 3Ð 3ðuð uð uð uð u˜œñ uô uð uðp=4ð =4ð =4ð =4ð =4˜ñ =4ô =4ð =4ð@e:ð e:ð e:ð e:ð e:�&ñ e:ô e:ð e:ðPDð Dð Dð$$7ð $7ð $7ðN ˆzÒÐØ	€E�G„G€G€G€Gð ÐrA   