ó
    ð›‘h»O  ã                   ó¸  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJrJ	r	J
r
  S SKrS SKrS SKrS SKrS SKJr  S SKJrJr  S SKJr  S SKJr  Sr S SKrSr\R8                  S:X  a+  S	\ R:                  ;   a  \ R:                  R=                  S	5      r\R>                  " 5         S
r\(       a  \\ R:                  S	'    " S S\!5      r" " S S\!5      r#S\ R:                  ;   a  \ R:                  S   r$OSr$S r%S r& " S S\RN                  5      r(SS jr) " S S\RN                  5      r*S r+ " S S\RN                  5      r,SS jr-Sr.SS jr/g! \  a     Nšf = f) é    N)ÚOptionalÚListÚDict)Útime_ns)Úhexstr_if_strÚto_hex)Ú	parse_url)Úpkm_from_argon2_secretFÚwin32ÚTERMTc            (       óp  • \ rS rSrSr                   SS\\   S\\   S\\   S\\   S\\   S	\\   S
\\   S\\   S\\   S\\R                     S\\R                     S\\
R                     S\\
R                     S\\   S\\   S\\   S\\   S\\   S\\   4&S jjrS r\S 5       rSrg)ÚProfileéA   a  
User profile, stored as named section in ``${HOME}/.xbrnetwork/config.ini``:

.. code-block:: INI

    [default]
    # username used with this profile
    username=joedoe

    # user email used with the profile (e.g. for verification emails)
    email=joe.doe@example.com

    # XBR network node used as a directory server and gateway to XBR smart contracts
    network_url=ws://localhost:8090/ws

    # WAMP realm on network node, usually "xbrnetwork"
    network_realm=xbrnetwork

    # user private WAMP-cryptosign key (for client authentication)
    cskey=0xb18bbe88ca0e189689e99f87b19addfb179d46aab3d59ec5d93a15286b949eb6

    # user private Ethereum key (for signing transactions and e2e data encryption)
    ethkey=0xfbada363e724d4db2faa2eeaa7d7aca37637b1076dd8cf6fefde13983abaa2ef
NÚpathÚnameÚ
member_adrÚethkeyÚcskeyÚusernameÚemailÚnetwork_urlÚnetwork_realmÚ
member_oidÚvaction_oidÚvaction_requestedÚvaction_verifiedÚdata_urlÚ
data_realmÚ
infura_urlÚinfura_networkÚ
infura_keyÚinfura_secretc                 ó  • SSK Jn  U" 5       U l        Xl        X l        X0l        X@l        XPl        X`l        Xpl	        X€l
        X�l        X l        X°l        XÀl        XÐl        Xàl        Xðl        UU l        UU l        UU l        UU l        g)af  

:param path:
:param name:
:param member_adr:
:param ethkey:
:param cskey:
:param username:
:param email:
:param network_url:
:param network_realm:
:param member_oid:
:param vaction_oid:
:param vaction_requested:
:param vaction_verified:
:param data_url:
:param data_realm:
:param infura_url:
:param infura_network:
:param infura_key:
:param infura_secret:
r   ©Úmake_loggerN)Útxaior%   Úlogr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   )Úselfr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r%   s                        ÚXC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\autobahn/xbr/_config.pyÚ__init__ÚProfile.__init__[   s   € õT 	&Ù“=ˆŒàŒ	ØŒ	à$ŒØŒØŒ
Ø ŒØŒ
Ø&ÔØ*ÔØ$ŒØ&ÔØ!2ÔØ 0ÔØ ŒØ$ŒØ$ˆŒØ,ˆÔØ$ˆŒØ*ˆÕó    c                 ó¾  • 0 nU R                   =(       d    SUS'   U R                  (       a=  SR                  [        R                  " U R                  5      R                  5       5      OSUS'   U R                  (       a=  SR                  [        R                  " U R                  5      R                  5       5      OSUS'   U R                  =(       d    SUS'   U R                  =(       d    SUS'   U R                  =(       d    SUS'   U R                  =(       d    SUS	'   U R                  (       a  [        U R                  5      OSUS
'   U R                  (       a  [        U R                  5      OSUS'   U R                  (       a  [        U R                  5      OSUS'   U R                  (       a  [        U R                  5      OSUS'   U R                   =(       d    SUS'   U R"                  =(       d    SUS'   U R$                  =(       d    SUS'   U R&                  =(       d    SUS'   U R(                  =(       d    SUS'   U R*                  =(       d    SUS'   U$ )NÚ r   z0x{}r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   )r   r   ÚformatÚbinasciiÚb2a_hexÚdecoder   r   r   r   r   r   Ústrr   r   r   r   r   r   r    r!   r"   )r(   Úobjs     r)   ÚmarshalÚProfile.marshal�   sÇ  € ØˆØ ŸO™O×1¨rˆˆLÑØQU×Q\×Q\˜Ÿ™¤h×&6Ò&6°t·{±{Ó&C×&JÑ&JÓ&LÔMÐbdˆˆH‰ØOSÏzÏz�v—}‘}¤X×%5Ò%5°d·j±jÓ%A×%HÑ%HÓ%JÔKÐ_aˆˆG‰ØŸ-™-×-¨2ˆˆJ‰Ø—z‘z×' RˆˆG‰Ø!×-Ñ-×3°ˆˆMÑØ#×1Ñ1×7°RˆˆOÑØ48·O·OœC §¡Ô0ÈˆˆLÑØ6:×6F×6FœS ×!1Ñ!1Ô2ÈBˆˆMÑØBF×BX×BX¤3 t×'=Ñ'=Ô#>Ð^`ˆÐÑ Ø@D×@U×@U¤# d×&;Ñ&;Ô"<Ð[]ˆÐÑØŸ-™-×-¨2ˆˆJ‰Ø ŸO™O×1¨rˆˆLÑØ ŸO™O×1¨rˆˆLÑØ $× 3Ñ 3× 9°rˆÐÑØ ŸO™O×1¨rˆˆLÑØ#×1Ñ1×7°RˆˆOÑØˆ
r,   c                 ó  • S nS nS nS nS nS nS n	S n
S nS nS nS nS nS nS nS nS nU GHH  u  nnUS:X  a  [        U5      nM  US:X  a  [        U5      n	M-  US:X  a5  [        U5      [         :X  a  US:w  a  [        R                  " U5      nMd  S nMh  US:X  a!  [        U5      [         :X  a
  US:w  a  UnM‹  S nM�  US:X  a5  [        U5      [         :X  a  US:w  a  [        R                  " U5      n
MÆ  S n
MÊ  US:X  a9  [        U5      [        :X  a!  U(       a  [
        R                  " US5      nGM  UnGM	  US	:X  a2  [        U5      [        :X  a  [
        R                  " US5      nGM<  UnGMA  US
:X  a  [        U5      nGMU  US:X  a  [        U5      nGMi  US:X  a  [        R                  " USS  5      nGM‹  US:X  a  [        R                  " USS  5      nGM­  US:X  a  [        U5      nGMÁ  US:X  a  [        U5      nGMÕ  US:X  a  [        U5      nGMé  US:X  a  [        U5      nGMý  US:X  a  [        U5      nGM  US:X  a  [        U5      nGM%  US;   a  GM.  [        SR                  U5      5        GMK     [        XX4UXgX‰U
X¼UXïUUUU5      $ )Nr   r   r   r.   r   r   r   Únsr   r   r   r   é   r   r   r   r    r!   r"   r   )r   r   z!unprocessed config attribute "{}")r3   ÚtypeÚuuidÚUUIDÚintÚnpÚ
datetime64r0   Úa2b_hexÚprintr/   r   )r   r   Úitemsr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   ÚkÚvs                         r)   ÚparseÚProfile.parse²   sq  € àˆ
ØˆØˆØˆØˆØˆØˆØˆ
ØˆØ ÐØÐØˆØˆ
ØˆØˆ
ØˆØˆ
Ü‰DˆAˆqØ�MÓ!Ü! !›f’Ø�oÓ%Ü # A£’Ø�mÓ#Ü˜“7œc“> a¨2£gÜ"&§)¢)¨A£,’Kà"&’KØ�lÓ"Ü˜“7œc“> a¨2£gØ!"’Jà!%’JØ�lÓ"Ü˜“7œc“> a¨2£gÜ!%§¢¨1£’Jà!%’JØÐ)Ó)Ü˜“7œc“>¦aÜ(*¯ª°a¸Ó(>Ó%à()Ó%ØÐ(Ó(Ü˜“7œc“>Ü')§}¢}°Q¸Ó'=Ó$à'(Ó$Ø�j“Ü˜q›6“Ø�lÓ"Ü  ›V“
Ø�h“Ü!×)Ò)¨!¨A¨B¨%Ó0“Ø�g“Ü ×(Ò(¨¨1¨2¨Ó/“Ø�j“Ü˜q›6“Ø�g“Ü˜A›“ØÐ&Ó&Ü!$ Q£“Ø�lÓ"Ü  ›V“
Ø�oÓ%Ü # A£“Ø�lÓ"Ü  ›V“
ØÐ&Ó&Úô Ð9×@Ñ@ÀÓC×Dñm ôp �tØ!¨5ØØ"Ø!Ø"Ð7GØØ! >°:¸}óNð 	Nr,   )r   r   r   r   r   r!   r    r"   r   r'   r   r   r   r   r   r   r   r   r   r   )NNNNNNNNNNNNNNNNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r3   Úbytesr;   r<   r>   r?   r*   r5   ÚstaticmethodrE   Ú__static_attributes__© r,   r)   r   r   A   s“  † ñð4 (,Ø'+Ø-1Ø+/Ø*.Ø+/Ø(,Ø.2Ø04Ø37Ø48Ø>BØ=AØ+/Ø-1Ø-1Ø15Ø-1Ø04ñ'@+Ø ‘}ð@+à ‘}ð@+ð & c™]ð@+ð " %™ð	@+ð
 ! ™ð@+ð $ C™=ð@+ð ! ™ð@+ð ' s™mð@+ð !)¨¡ð@+ð & d§i¡iÑ0ð@+ð ' t§y¡yÑ1ð@+ð %-¨R¯]©]Ñ$;ð@+ð $,¨B¯M©MÑ#:ð@+ð $ C™=ð@+ð & c™]ð@+ð  & c™]ð!@+ð" "*¨#¡ð#@+ð$ & c™]ð%@+ð& !)¨¡õ'@+òDð* ñQNó óQNr,   r   c                   óŽ   • \ rS rSrSrS r\S\\   4S j5       r	\S\
\\4   4S j5       rSS\\   4S	 jjrSS\\   4S
 jjrSrg)Ú
UserConfigi  z¶
Local user configuration file. The data is either a plain text (unencrypted)
.ini file, or such a file encrypted with XSalsa20-Poly1305, and with a
binary file header of 48 octets.
c                 ó~   • SSK Jn  U" 5       U l        [        R                  R                  U5      U l        0 U l        g)z8

:param config_path: The user configuration file path.
r   r$   N)r&   r%   r'   Úosr   ÚabspathÚ_config_pathÚ	_profiles)r(   Úconfig_pathr%   s      r)   r*   ÚUserConfig.__init__  s,   € õ
 	&Ù“=ˆŒÜŸG™GŸO™O¨KÓ8ˆÔØˆ�r,   Úreturnc                 ó   • U R                   $ )zj
Return the path to the user configuration file exposed by this object.,

:return: Local filesystem path.
)rU   ©r(   s    r)   rW   ÚUserConfig.config_path  s   € ð × Ñ Ð r,   c                 ó   • U R                   $ )z^
Access to a map of user profiles in this user configuration.

:return: Map of user profiles.
)rV   r[   s    r)   ÚprofilesÚUserConfig.profiles   s   € ð �~‰~Ðr,   NÚpasswordc           	      óZ  • Sn[         R                  " 5       nU R                  R                  5        Hi  u  pEXCR	                  5       ;  a  UR                  U5        US-  nUR                  5       nUR                  5        H  u  pxUR                  XGU5        M     Mk     [        R                  " 5        n	UR                  U	5        U	R                  5       R                  S5      n
SSS5        U(       aª  [        R                  " S5      nSn[        SXUS9n[         R"                  R%                  U5      nUR'                  W
5      nS	S
S[(        R*                  " S[-        U5      5      [(        R*                  " S[/        5       5      SUU/nSR1                  U5      nOW
n[3        U R4                  S5       nUR                  U5        SSS5        U R6                  R9                  SU[-        U5      U R4                  S9  [-        U5      $ ! , (       d  f       GN,= f! , (       d  f       NZ= f)a  
Save this user configuration to the underlying configuration file. The user
configuration file can be encrypted using Argon2id when a ``password`` is given.

:param password: The optional Argon2id password.

:return: Number of octets written to the user configuration file.
r   é   Úutf8Né   úxbrnetwork-configr.   ©r   r`   ÚcontextÚsalts   Þ­¾ïs     fs      ú>Lú>Qs           r,   ÚwbzUconfiguration with {sections} sections, {bytes_written} bytes written to {written_to})ÚsectionsÚbytes_writtenÚ
written_to)ÚconfigparserÚConfigParserrV   rB   rl   Úadd_sectionr5   ÚsetÚioÚStringIOÚwriteÚgetvalueÚencoderS   Úurandomr
   ÚnaclÚsecretÚ	SecretBoxÚencryptÚstructÚpackÚlenr   ÚjoinÚopenrU   r'   Údebug)r(   r`   ÚwrittenÚconfigÚprofile_nameÚprofileÚpdÚoptionÚvalueÚfp1Úconfig_datarh   rg   Úpriv_keyÚboxÚconfig_data_ciphertextÚdlÚdataÚfp2s                      r)   ÚsaveÚUserConfig.save)  s¾  € ð ˆÜ×*Ò*Ó,ˆØ%)§^¡^×%9Ñ%9Ö%;Ñ!ˆLØ§?¡?Ó#4Ó4Ø×"Ñ" <Ô0Ø˜1‘�Ø—‘Ó"ˆBØ!#§¡¦‘�Ø—
‘
˜<°Ö7ó ",ñ &<ô �[Š[Œ]˜cØ�L‰L˜ÔØŸ,™,›.×/Ñ/°Ó7ˆK÷ ö ô —:’:˜b“>ˆDØ)ˆGÜ-°BÀÐaeÑfˆHÜ—+‘+×'Ñ'¨Ó1ˆCØ%(§[¡[°Ó%=Ð"à#Ø#Ø#Ü—’˜D¤#Ð&<Ó"=Ó>Ü—’˜D¤'£)Ó,ØØØ&ð	ˆBð —8‘8˜B“<‰DàˆDä�$×#Ñ# TÔ*¨cØ�I‰I�dŒO÷ +ð 	�‰�‰ÐnØ '´s¸4³yÈT×M^ÑM^ð 	ñ 	`ô �4‹yÐ÷O Ž]ú÷B +Õ*ús   Â41H
Æ6HÈ

HÈ
H*c                 óØ  • [         R                  R                  U R                  5      (       a.  [         R                  R	                  U R                  5      (       d$  [        SR                  U R                  5      5      e[        U R                  S5       nUR                  5       nSSS5        [        W5      S:¼  aç  USS S:X  aÞ  USS nUSS n[        R                  " SUSS 5      S	   n[        R                  " SUSS
 5      S	   n[        R                  " SUS
S 5      S	   nUS;   d   eU[        U5      :X  d   eU[        5       :  d   eUSS n	Sn
U(       a  U" 5       nOSn[        SXºU	S9n[        R                  R!                  U5      nUR#                  U5      nOSnUn[$        R&                  " 5       nUR)                  UR+                  S5      5        0 nUR-                  5        H:  nUR/                  U5      n[0        R3                  U R                  UU5      nUUU'   M<     Xðl        [7        U R8                  R;                  5       5      nU$ ! , (       d  f       GN¹= f)zý
Load this object from the underlying user configuration file. When the
file is encrypted, call back into ``cb_get_password`` to get the user password.

:param cb_get_password: Callback called when password is needed.

:return: List of profiles loaded.
z/config path "{}" cannot be loaded: so such fileÚrbNé0   é   s   Þ­¾ï  fri   é   r   rd   rj   é   )r   rb   é    re   r.   rf   rc   )rS   r   ÚexistsrU   ÚisfileÚRuntimeErrorr/   r�   Úreadr   r}   Úunpackr   r
   ry   rz   r{   Údecryptro   rp   Úread_stringr2   rl   rB   r   rE   rV   Úsortedr^   Úkeys)r(   Úcb_get_passwordÚfpr�   ÚheaderÚbodyÚalgoÚdata_lenÚcreatedrh   rg   r`   rŒ   r�   r„   r^   r…   Úcitemsr†   Úloaded_profiless                       r)   ÚloadÚUserConfig.loade  s  € ô �w‰w�~‰~˜d×/Ñ/×0Ñ0¼¿¹¿¹Àt×GXÑGX×8YÑ8YÜÐP×WÑWÐX\×XiÑXiÓjÓkÐkä�$×#Ñ# TÔ*¨bØ—7‘7“9ˆD÷ +ô ˆt‹9˜‹?˜t B Q˜xÐ+NÓNà˜#˜2�YˆFØ˜˜�9ˆDä—=’=  v¨a° |Ó4°QÑ7ˆDÜ—}’} T¨6°"°R¨=Ó9¸!Ñ<ˆHÜ—m’m D¨&°°B¨-Ó8¸Ñ;ˆGð ˜6“>Ð!�>Øœs 4›yÓ(Ð(Ð(ØœW›YÓ&Ð&Ð&à˜"˜R�=ˆDØ)ˆGÞÙ*Ó,‘à�Ü-°BÀÐaeÑfˆHÜ—+‘+×'Ñ'¨Ó1ˆCØ—;‘;˜tÓ$‰Dð ˆFØˆDä×*Ò*Ó,ˆØ×Ñ˜4Ÿ;™; vÓ.Ô/àˆØ"ŸO™OÖ-ˆLØ—\‘\ ,Ó/ˆFÜ—m‘m D×$5Ñ$5°|ÀVÓLˆGØ%,ˆH�\Ó"ñ .ð "Œä  §¡×!3Ñ!3Ó!5Ó6ˆØÐ÷U +Ö*ús   ÂIÉ
I))rU   rV   r'   ©N)rG   rH   rI   rJ   rK   r*   Úpropertyr   r3   rW   r   Úobjectr^   r   r’   r­   rN   rO   r,   r)   rQ   rQ     su   † ñò
ð ð!˜T #™Yó !ó ð!ð ð˜$˜s F˜{Ñ+ó ó ðñ:˜X c™]õ :ñx6¨D°©I÷ 6ð 6r,   rQ   ÚCROSSBAR_FABRIC_URLzwss://master.xbr.network/wsc                 óH   • [         (       a  [        R                  " U SSS9$ U $ )NÚredT©ÚfgÚbold©Ú_HAS_COLOR_TERMÚclickÚstyle©Útexts    r)   Ústyle_errorr¾   ¤  s   € ß‚Ü�{Š{˜4 E°Ñ5Ð5àˆr,   c                 óH   • [         (       a  [        R                  " U SSS9$ U $ )NÚgreenTrµ   r¸   r¼   s    r)   Ústyle_okrÁ   «  s   € ß‚Ü�{Š{˜4 G°$Ñ7Ð7àˆr,   c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚWampUrli²  z
WAMP transport URL validator.
zWAMP transport URLc                 óB   • [         R                  R                  U 5        g r¯   ©rº   Ú	ParamTyper*   r[   s    r)   r*   ÚWampUrl.__init__¹  ó   € Ü�‰× Ñ  Õ&r,   c                 ó’   •  [        U5        U$ ! [         a-  nU R                  [        [	        U5      5      5         S nAg S nAff = fr¯   )r	   Ú	ExceptionÚfailr¾   r3   )r(   r‰   ÚparamÚctxÚes        r)   ÚconvertÚWampUrl.convert¼  s@   € ð	Ü�eÔð ˆLøô ó 	+Ø�I‰I”k¤# a£&Ó)×*Ñ*ûð	+ús   ‚ �
A™#AÁArO   N©	rG   rH   rI   rJ   rK   r   r*   rÏ   rN   rO   r,   r)   rÃ   rÃ   ²  s   † ñð  €Dò'õr,   rÃ   c                 óB   • [         R                  " U [        5       US9nU$ )zH
Prompt user for WAMP transport URL (eg "wss://planet.xbr.network/ws").
©r:   Údefault)rº   ÚpromptrÃ   )ÚmsgrÔ   r‰   s      r)   Úprompt_for_wamp_urlr×   Å  s   € ô �LŠL˜¤7£9°gÑ>€EØ€Lr,   c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚEthereumAddressiÍ  z
Ethereum address validator.
zEthereum addressc                 óB   • [         R                  R                  U 5        g r¯   rÅ   r[   s    r)   r*   ÚEthereumAddress.__init__Ô  rÈ   r,   c                 óR  •  [         R                  R                  U5      n[        R                  " USS  5      n[        U5      S:w  a#  [        SR                  [        U5      5      5      e U$ ! [         a-  nU R                  [        [        U5      5      5         S nAg S nAff = f)Nr9   é   z<Ethereum addres must be 20 bytes (160 bit), but was {} bytes)Úweb3ÚWeb3ÚtoChecksumAddressr0   r@   r   Ú
ValueErrorr/   rÊ   rË   r¾   r3   )r(   r‰   rÌ   rÍ   ÚadrrÎ   s         r)   rÏ   ÚEthereumAddress.convert×  s‘   € ð	Ü—I‘I×/Ñ/°Ó6ˆEÜ×"Ò" 5¨¨ 9Ó-ˆCÜ�5‹z˜RÓÜ Ð!_×!fÑ!fÔgjÐknÓgoÓ!pÓqÐqð  ð
 ˆLøô ó 	+Ø�I‰I”k¤# a£&Ó)×*Ñ*ûð	+ús   ‚A*A/ Á/
B&Á9#B!Â!B&rO   NrÑ   rO   r,   r)   rÙ   rÙ   Í  s   † ñð €Dò'õ	r,   rÙ   c                 ó@   • [         R                  " U [        5       S9nU$ )z/
Prompt user for an Ethereum (public) address.
)r:   )rº   rÕ   rÙ   )rÖ   r‰   s     r)   Úprompt_for_ethereum_addressrå   ã  s   € ô �LŠL˜¤?Ó#4Ñ5€EØ€Lr,   c                   ó(   • \ rS rSrSrSrS rS rSrg)Ú
PrivateKeyië  z*
Private key (32 bytes in HEX) validator.
zPrivate keyc                 óN   • [         R                  R                  U 5        Xl        g r¯   )rº   rÆ   r*   Ú_key_len)r(   Úkey_lens     r)   r*   ÚPrivateKey.__init__ò  s   € Ü�‰× Ñ  Ô&Ø�r,   c                 óž  •  [        [        U5      nUS S S;   a  [        R                  " USS  5      nO[        R                  " U5      n[	        U5      U R
                  :w  a.  [        SR                  U R
                  [	        U5      5      5      e U$ ! [         a-  nU R                  [        [        U5      5      5         S nAg S nAff = f)Nr9   )Ú0xz\xz-key length must be {} bytes, but was {} bytes)r   r   r0   r@   r   ré   rá   r/   rÊ   rË   r¾   r3   )r(   r‰   rÌ   rÍ   ÚkeyrÎ   s         r)   rÏ   ÚPrivateKey.convertö  s´   € ð	Ü!¤&¨%Ó0ˆEØ�R�aˆy˜MÓ)Ü×&Ò& u¨Q¨R yÓ1‘ä×&Ò& uÓ-�Ü�3‹x˜4Ÿ=™=Ó(Ü Ð!P×!WÑ!WÐX\×XeÑXeÔgjÐknÓgoÓ!pÓqÐqð )ð
 ˆLøô ó 	+Ø�I‰I”k¤# a£&Ó)×*Ñ*ûð	+ús   ‚BB Â
CÂ#CÃC)ré   NrÑ   rO   r,   r)   rç   rç   ë  s   † ñð €Dò õr,   rç   c                 óD   • [         R                  " U [        U5      US9nU$ )z8
Prompt user for a binary key of given length (in HEX).
rÓ   )rº   rÕ   rç   )rÖ   rê   rÔ   r‰   s       r)   Úprompt_for_keyrñ     s    € ô �LŠL˜¤:¨gÓ#6ÀÑH€EØ€Lr,   aý  [default]
# username used with this profile
username={username}

# user email used with the profile (e.g. for verification emails)
email={email}

# XBR network node used as a directory server and gateway to XBR smart contracts
network_url={network_url}

# WAMP realm on network node, usually "xbrnetwork"
network_realm={network_realm}

# user private WAMP-cryptosign key (for client authentication)
cskey={cskey}

# user private Ethereum key (for signing transactions and e2e data encryption)
ethkey={ethkey}
c                 óÊ  • U =(       d    Sn U=(       d    SnU=(       d    SnU=(       d    Sn[         R                  R                  U 5      n[         R                  R                  U5      (       dD  [         R                  " U5        [
        R                  " SR                  [        U5      5      5        [         R                  R                  US5      n[         R                  R                  U5      (       Gdv  [
        R                  " SR                  [        U5      5      5        [        US5       n[        S	US
9n	[
        R                  " S[        US9n
[        SSS[         R"                  " [         R$                  " S5      5      R'                  5       -   S
9n[        SSS[         R"                  " [         R$                  " S5      5      R'                  5       -   S
9n[
        R                  " S[        US9n[
        R                  " S[        US9nUR)                  [*        R                  XšUX½US95        [
        R                  " SR                  [        U5      5      5        S S S 5        [-        U5      nUR/                  5         UR0                  R3                  US 5      nU(       d%  [
        R4                  " SR                  U5      5      eU$ ! , (       d  f       Ns= f)Nz~/.xbrnetworkrÔ   zwss://planet.xbr.network/wsÚ
xbrnetworkz#created new local user directory {}z
config.inizcreating new user profile "{}"Úwz7enter the WAMP router URL of the network directory node)rÔ   z:enter the WAMP realm to join on the network directory noderÓ   zyour private WAMP client keyrš   rí   zyour private Etherum keyz user email used for with profilez user name used with this profile)r   r   r   r   r   r   z'created new local user configuration {}zno such profile: "{}")rS   r   Ú
expanduserÚisdirÚmkdirrº   Úechor/   rÁ   r€   rœ   r�   r×   rÕ   r3   rñ   r0   r1   rx   r2   ru   Ú_DEFAULT_CONFIGrQ   r­   r^   ÚgetÚClickException)Údotdirr†   Údefault_urlÚdefault_realmÚdefault_emailÚdefault_usernameÚ
config_dirrW   Úfr   r   r   r   r   r   Ú
config_objÚprofile_objs                    r)   Úload_or_create_profiler  ,  s6  € Ø×&�€FØ×"˜€GØ×>Ð!>€KØ!×1 \€Mä—‘×#Ñ# FÓ+€JÜ�7‰7�=‰=˜×$Ñ$Ü
�Š�ÔÜ�
Š
Ð8×?Ñ?ÄÈÓ@TÓUÔVä—'‘'—,‘,˜z¨<Ó8€KÜ�7‰7�>‰>˜+×&Ò&Ü�
Š
Ð3×:Ñ:¼8ÀGÓ;LÓMÔNÜ�+˜sÔ# qÜ-Ð.gÐq|Ñ}ˆKÜ!ŸLšLÐ)eÔloð  zGñ  HˆMÜ"Ð#AÀ2ÈtÔV^×VfÒVfÔgi×gqÒgqÐrtÓguÓVv×V}ÑV}ÓVÑOñ  AˆEÜ#Ð$>ÀÈDÔS[×ScÒScÔdf×dnÒdnÐoqÓdrÓSs×SzÑSzÓS|ÑL|Ñ}ˆFÜ—L’LÐ!CÌ#ÐWdÑeˆEÜ—|’|Ð$FÌSÐZjÑkˆHØ�G‰G”O×*Ñ*°{ÐhnØ16Èhð +ð Xô Yä�JŠJÐ@×GÑGÌÐQ\ÓH]Ó^Ô_÷ $ô ˜KÓ(€JØ‡O�OÔØ×%Ñ%×)Ñ)¨'°4Ó8€KæÜ×"Ò"Ð#:×#AÑ#AÀ'Ó#JÓKÐKàÐ÷% $Õ#ús   Ä3D4KË
K"r¯   )NNNNNN)0rS   rs   Úsysr;   r}   r0   ro   Útypingr   r   r   rº   ry   rÞ   Únumpyr>   Útimer   Úeth_utils.conversionsr   r   Úautobahn.websocket.utilr	   Úautobahn.xbr._walletr
   r¹   ÚcoloramaÚtermÚplatformÚenvironÚpopÚinitÚImportErrorr±   r   rQ   Ú_DEFAULT_CFC_URLr¾   rÁ   rÆ   rÃ   r×   rÙ   rå   rç   rñ   rù   r  rO   r,   r)   Ú<module>r     sD  ðó6 
Û 	Û 
Û Û Û Û ß 'Ñ 'ã Û Û Û Ý ß 7å -Ý 7à€ð	Ûð €DØ
‡|�|�wÓ 6¨R¯Z©ZÓ#7Ø�z‰z�~‰~˜fÓ%ˆà‡M‚M„OØ€OæØ!ˆ�
‰
�6ÑôCNˆfô CNôLT�ô Tðn ˜BŸJ™JÓ&Ø—z‘zÐ"7Ñ8Ñà5Ðòòôˆe�o‰oô ô&ô�e—o‘oô ò,ô�—‘ô ô4ð€õ< øð_ ó 	Ùð	ús   ÁA*E ÅEÅE