
    sig                    z   S r SSKJr  SSKrSSKrSSKJr  SSKJr  SSK	J
r
  SSKJr  SSKJrJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJrJrJr  \(       a  SSKJrJrJr  SSKJr  SSK J!r!  SSKJ"r"  \" \#5      r$S0S jr%S1S jr&S r'S2S jr(S2S3S jjr)S r*S4S jr+S5S jr,SSK-J.r.  \." SSSS 9S6S7S! jj5       r/\." SSS"S 9 S6       S8S# jj5       r0\." SSS$S 9S9S% j5       r1\." SSS&S 9S9S' j5       r2\." SSS(S 9S:S) j5       r3\." SSS*S 9S;S+ j5       r4\." SSS,S 9S<S- j5       r5\." SSS.S 9      S=S/ j5       r6g)>zCLI implementation for `conda config`.

Allows for programmatically interacting with conda's configuration files (e.g., `~/.condarc`).
    )annotationsN)SUPPRESS)Mapping)chain)	getLogger)isfilejoin)wrap)TYPE_CHECKING   )DEFAULT_CONDARC_FILENAME)CouldntParseError   )MISSINGConfigurationFilevalidate_provided_parameters)ArgumentParser	Namespace_SubParsersAction)Sequence)Path)Anyc           
        SSK Jn  SSKJn  SSKJnJnJn  SSKJ	n  SSK
JnJn	  UR                  SS	5      n
UR                  SS	5      nS
nU" SU SU
 S35      nU" SU S35      nU R                  "  SFUUUS.UD6nU" U5        UR                  SSU
 S35      nUR!                  5       nUR#                  SSSU S3S9  UR#                  SSSR%                  UR&                  =(       d    SU
5      S9  UR#                  SSSS9  U	" U5        UR                  S5      nUR!                  5       nUR#                  S S!S S"S#9  UR#                  S$SS%S9  UR#                  S&SS'S9  UR#                  S(S!S S)S#9  UR#                  S*SS+S9  UR                  S,5      nUR!                  5       nUR#                  S-S!SS.S S/S09  UR#                  S1SS2S3/ S4S09  UR#                  S5S6SS2S7/ S4S09  UR#                  S8SS2S9/ S4S09  UR#                  S:SS2S;/ S4S09  UR#                  S<S2S=/ S/S>9  UR#                  S?SS@S9  UR#                  SASBSU[(        SC9  UR+                  SDSE9  U$ )GNr   )dals)CONDA_HOMEPAGE_URLcontextsys_rc_pathuser_rc_path)NULLr   )add_parser_jsonadd_parser_prefix_to_group%z%%z(Modify configuration values in .condarc.z	
        zc

        This is modeled after the git config command.  Writes to the user .condarc
        file (z) by default. Use the
        --show-sources flag to display all identified configuration locations on
        your computer.

        z*
        See `conda config --describe` or a  /docs/config.html
        for details on all the options that can go in .condarc.

        Examples:

        Display all configuration values as calculated and compiled::

            conda config --show

        Display all identified configuration sources::

            conda config --show-sources

        Print the descriptions of all available configuration
        options to your command line::

            conda config --describe

        Print the description for the "channel_priority" configuration
        option to your command line::

            conda config --describe channel_priority

        Add the conda-canary channel::

            conda config --add channels conda-canary

        Set the output verbosity to level 3 (highest) for
        the current activate environment::

            conda config --set verbosity 3 --env

        Add the 'conda-forge' channel as a backup to 'defaults'::

            conda config --append channels conda-forge

        )helpdescriptionepilogzConfig File Location Selectionz5Without one of these flags, the user config file at 'z
' is used.z--system
store_truez&Write to the system .condarc file at 'z'.)actionr$   z--envzzWrite to the active conda environment .condarc file ({}). If no environment is active, write to the user config file ({}).z<no active environment>z--filestorezWrite to the given file.zConfig Subcommandsz--show*z~Display configuration values as calculated and compiled. If no arguments given, show information for all configuration values.)nargsdefaultr$   z--show-sourcesz-Display all identified configuration sources.z
--validatezcValidate all configuration sources. Iterates over all .condarc files and checks for parsing errors.z
--describezrDescribe given configuration parameters. If no arguments given, show information for all configuration parameters.z--write-defaultz`Write the default configuration to a file. Equivalent to `conda config --describe > ~/.condarc`.zConfig Modifiersz--getzGet a configuration value.KEY)r+   r(   r$   r,   metavarz--appendappendz5Add one configuration value to the end of a list key.)r-   VALUEz	--prepend--addz;Add one configuration value to the beginning of a list key.--setzSet a boolean or string key.z--removezfRemove a configuration value from a list key.
                This removes all instances of the value.z--remove-keyz0Remove a configuration key (and all its values).)r(   r$   r,   r.   z--stdinzIApply configuration information given in yaml format piped through stdin.z-fz--force)r(   r,   r$   zconda.cli.main_config.execute)func)config)
auxlib.ishr   base.constantsr   base.contextr   r   r   common.constantsr    helpersr!   r"   replace
add_parseradd_argument_groupadd_mutually_exclusive_groupadd_argumentformatactive_prefixr   set_defaults)sub_parserskwargsr   r   r   r   r   r    r!   r"   escaped_user_rc_pathescaped_sys_rc_pathsummaryr%   r&   pconfig_file_location_grouplocation_config_subcommandsconfig_subcommands_config_modifiersconfig_modifierss                         5lib/python3.13/site-packages/conda/cli/main_config.pyconfigure_parserrO   %   s   !3AA'D'//T:%--c488G			  $$ %			
K **<)= $>	%	'FR 				
 	A A "#!5!5(
?@T?UU_`" *FFHH56I5J"M  
 6!!>%> 
  	 (79STx(
 ../CD,IIK##P	 $  ##< $ 
 ##) $  ##8	 $  ##@ $  ,,-?@(EEG!!) "  !!H  "  !!N  "  !!/  "  !!<  "  !!C "  !!X "  NN   NN7N8H    c                f    SSK Jn   [        X5      $ ! [        [        4 a  nU" U5      eS nAff = f)Nr   
CondaError) rS   execute_configr   NotImplementedError)argsparserrS   es       rN   executerZ      s5    d++23 ms   
 0+0c                   SSK Jn  SSKJnJn  / nU R                  5        H  u  pV[        U[        5      (       aJ  U(       a-  UR                  U S35        UR                  U" U5      5        MN  UR                  U S35        Md  U" U5      (       aJ  U(       a-  UR                  U S35        UR                  U" U5      5        M  UR                  U S35        M  UR                  SR                  XVb  UOS5      5        M     U$ )	Nr   )
isiterable)pretty_list
pretty_map:z: {}z: []z{}: {}None)
common.compatr\   common.configurationr]   r^   items
isinstancer   r/   r?   )dr\   r]   r^   lineskvs          rN   format_dictri      s    *>E	a!!s!W%Z]+s&\*]]s!W%[^,s$Z(LLAFKL  LrP   c                   SSK JnJn  Uc  SSKJn  U(       a  SOSn/ nUR                  U 5      nUS   nUR                  S5      n	US   n
UR                  US	   5      nUS
   S:X  aG  UR                  SR                  U U  3SR                  [        [        U
5      5      5      5      5        OJUR                  SR                  U U  3US
   SR                  [        [        U
5      5      5      5      5        U(       a/  UR                  SR                  SR                  U5      5      5        U	(       a  UR                  SU	 S35        UR                  S [        US   S5       5       5        UR                  S5        U Vs/ s H  nSU-   PM
     nnU(       a$  UR                  SXR                  U5      005      nO!UR                  XR                  U5      05      nUR                  UR!                  5       R#                  S5      5        U Vs/ s H  nSU-   PM
     nnUR                  S5        U$ s  snf s  snf )Nr   jsonyamlr   plugins.rT   aliasesstring_delimiterelement_typesdefault_valueparameter_type	primitivez{} ({})z, z{} ({}: {})z  aliases: {}z  env var string delimiter: ''c              3  ,   #    U  H
  nS U-   v   M     g7f)z  N ).0lines     rN   	<genexpr>0parameter_description_builder.<locals>.<genexpr>5  s     L+K44$;+Ks   r%   F   z# plugins
)common.serializerl   rm   r7   r   describe_parametergetdumpsr/   r?   r	   sortedsetextendr
   loadsstripsplit)namer   r~   rl   rm   name_prefixbuilderdetailsrp   rq   rr   default_value_strrz   yaml_contents                 rN   parameter_description_builderr     s   - * '*RKG((.Gi G{{#56O,M

7?#;< K/-v&		&]!345	
 	  -v&()		&]!345	
 --dii.@AB67G6HJKNNL40F+KLLNN2'./wttd{wG/ zz9tZZ@Q5R.S"TUzz44E)F"GHNN<%%'--d34'./wttd{wG/NN2N 0 0s   H8H=c                  ^ ^ T c  SSK Jm   T R                  (       d  g/ nSnT R                  R	                  5        H  u  pEXC;   a  M  UR                  S5        UR                  SUS S35        UR                  S5        UR                  S5        UR                  [        R                  " U U4S	 jU 5       5      5        UR                  S5        M     S
R                  U5      $ )z
Return a string with the descriptions of all available configuration

When ``context`` has no parameters, this function returns ``""``
r   rn   rT   zCLI-onlyzHidden and Undocumentedz8# ######################################################z# ## z^48z ##c              3  :   >#    U  H  n[        UTTS 9v   M     g7f)r~   Nr   )ry   r   r   r~   s     rN   r{   *describe_all_parameters.<locals>.<genexpr>_  s!       +D .dGWM+s   r   )
r7   r   parameter_namescategory_maprc   r/   r   r   from_iterabler	   )r   r~   r   skip_categoriescategoryr   s   ``    rN   describe_all_parametersr   H  s     *""G=O%,%9%9%?%?%A!&QRxnC01QRr  +  	
 	r &B 99WrP   c           
        [        S5      R                  n[        U[        45      (       a,  UR	                  5        H  u  p4[        U S-   U-   U5        M     g [        U[        [        [        45      (       a$  U" SR                  SU [        U5      45      5        g [        U[        [        45      (       a  [        U5      n[        [        U5      5       Hg  u  pgU S:X  a9  USUS-
  4;   a.  U" SR                  SU [        U5      US:X  a  S	OS
45      5        MD  U" SR                  SU [        U5      45      5        Mi     g g )Nconda.stdout. r2   channelsr   r   r1   z  # lowest priorityz  # highest priority)r   inford   dictrc   print_config_itemboolintstrr	   listtuplelen	enumeratereversedrepr)keyvaluestdout_writerg   rh   numitemsqitems           rN   r   r   h  s   ^,11L%$!!KKMDAcCi!mQ/ "	ED#s+	,	,SXXwSZ89:	ED%=	)	) u: %1GAj Q1hl*;%;HH# J56!V1AW		 SXXwT$Z&@AB 2 
*rP   c                r    [        U 5      nU H  u  p4UR                  X45        M     UR                  5         g)z
Set multiple configuration keys in a file.

:param args: Variable number of (key, value) tuples to set.
:param path: Path to the configuration file.
N)r   set_keywrite)pathrW   r4   r   r   s        rN   set_keysr     s/     t$F
s" 
LLNrP   c                H  ^*^+^,^-^. SSK Jn  SSKJm*JnJn  SSKJn  SSKJ	nJ
n  SSKJn  U R                  (       a2  U R                  c  U R                  b  SSKJn	  U	" U R                  4U S	9m*[#        S
5      R$                  n
[#        S5      R$                  m./ n/ m,U R&                  (       a  T*R                  (       aR  U
" UR)                  T*R+                  5       R-                  5        VVs0 s H  u  p[/        U5      U_M     snnSS95        g/ nT*R+                  5       R-                  5        HE  u  pUR1                  SU S35        UR3                  [5        U5      5        UR1                  S5        MG     U
" SR7                  U5      5        gU R                  Gb  U R                  (       an  [9        S U R                   5       5      n[9        S U R                   5       5      n[;        UUT*5        [9        [<        R?                  U*4S jU 5       5      5      nO*T*RA                  5       nT*RB                  RA                  5       nU Vs0 s H  nU[E        T*U5      _M     nn0 US'   [G        UR-                  5       5       VVs0 s H	  u  nnUU_M     nnnU Hw  n[E        T*RB                  U5      n[I        U[J        5      (       a  [=        U5      US   U'   MA  [I        U[8        5      (       a  [M        U5      S:X  a
  / US   U'   Mo  UUS   U'   My     US   (       d  US	 T*R                  (       a  U
" UR)                  USS95        OSU;   aK  US   RO                  5        Vs0 s H)  nURP                  URR                   SURT                   3_M+     snUS'   SU;   a8  SSKJ+n  US   R-                  5        VVs0 s H  u  nnUU" USS9_M     snnUS'   SU;   a  Sm+[9        U+4S jUS    5       5      US'   U
" SR7                  [5        U5      5      5        T*RY                  5         T*RB                  RY                  5         gU R                  Gb&  U R                  (       Ga]  [9        S  U R                   5       5      n[9        S! U R                   5       5      n[;        UUT*5        [9        [<        R?                  U*4S" jU 5       5      5      nT*R                  (       af  U Vs/ s H  nT*R[                  U5      PM     snU Vs/ s H  nT*RB                  R[                  U5      PM      sn-   nU
" UR)                  USS95        g/ nUR3                  [\        R^                  " U*4S# jU 5       5      5        UR3                  [\        R^                  " U*4S$ jU 5       5      5        U
" SR7                  U5      5         gT*R                  (       az  S%m-[G        [\        R^                  " U-4S& jT*R`                  R-                  5        5       5      5      nU
" UR)                  U Vs/ s H  nT*R[                  U5      PM     snSS95        gU
" [c        T*5      5        U
" [c        T*RB                  SS'95        gU Rd                  (       a  T*Rg                  5         gU Rh                  (       a  UnOU Rj                  (       a/  T*Rl                  (       a  [7        T*Rl                  [n        5      nOUnOU R                  (       a  U R                  nOaU Rp                  (       d  U RP                  (       a=  URs                  5       nURu                  5         [/        URv                  [n        -  5      nOUnU Rx                  (       a  [{        U5      (       aE  [}        U5       nUR                  5       R                  5       nSSS5        W(       a  U" S(U S)35      e[}        US*5       nUR                  [c        T*5      5        UR                  [c        T*RB                  SS'95        SSS5        g[        UT*U*U,U.4S+ jS,9n [        R                  R                  U5      (       a  U R                  5         O5[        R                  R                  U5      (       a  U R                  U5        U R                  b  T*Rg                  5         U R                  =(       d#    [G        U R                  R                  5       5       H5  nU R                  U5      u  nnU[        Ld  M"  UR1                  UU45        M7     U R                  (       aV  U" S-[        R                  R~                  5      n!U!(       d  g UR                  U!5      n"U R                  R                  U"5        [        U R                  U R0                  4S05       H#  u  n$n%U$ H  u  nn&U R                  UU&U%S19  M     M%     U R                   H  u  nn&U R                  UU&5        M     U R                   H  u  nn&U R                  UU&5        M     U R                   H  nU R                  U5        M     U R                  (       d  U R                  5         T*R                  (       a  S2S3KZJ[n'  U'" UT,[=        U5      S49  gU H  u  n(n)[        U(U)5        M     gs  snnf s  snf s  snnf s  snf s  snnf s  snf s  snf s  snf ! , (       d  f       GN.= f! , (       d  f       g= f! [         a    SS.KPJQn#  U#" S/U! 35      ef = f)5a0  
Execute the conda config command based on provided arguments.

Handles various config subcommands including show, show-sources, describe,
validate, write-default, and modification operations (add, set, remove, etc.).

:param args: Parsed command line arguments.
:param parser: Argument parser instance.
r   rR   r   )timeoutrk   )
PrefixDataN)Context)search_pathargparse_argsr   zconda.stderrT)	sort_keysz==> z <==rT   r   c              3  T   #    U  H  oR                  S 5      (       a  M  Uv   M      g7fro   N
startswithry   r   s     rN   r{   !execute_config.<locals>.<genexpr>  s      (!*//*2M   (	(c              3  v   #    U  H/  nUR                  S 5      (       d  M  UR                  S S5      v   M1     g7fro   rT   Nr   r:   r   s     rN   r{   r     s3      /%D??:. -Z,,%   99c              3  X   >#    U  H  nTR                  U5      =(       d    Uv   M!     g 7fNname_for_aliasry   r   r   s     rN   r{   r     (      EXTG**408D8EX   '*r~   r   custom_channelsz://custom_multichannels)dashlist   )indentchannel_settingsz    c              3  ^   >#    U  H"  nS T 3R                  [        U5      5      v   M$     g7f)r   N)r	   ri   )ry   mappingidents     rN   r{   r     s1      .#8 L%%k'&:;;#8s   *-c              3  T   #    U  H  oR                  S 5      (       a  M  Uv   M      g7fr   r   r   s     rN   r{   r     s      (!.ooj6Qr   c              3  v   #    U  H/  nUR                  S 5      (       d  M  UR                  S S5      v   M1     g7fr   r   r   s     rN   r{   r     s3      /)D??:. -Z,,)r   c              3  X   >#    U  H  nTR                  U5      =(       d    Uv   M!     g 7fr   r   r   s     rN   r{   r     r   r   c              3  <   >#    U  H  n[        UT5      v   M     g 7fr   r   r   s     rN   r{   r   .  s"      ($7D 6dGDD$7s   c              3  N   >#    U  H  n[        UTR                  S S9v   M     g7f)Tr   N)r   r~   r   s     rN   r{   r   4  s,      ( %?D 6 '//4 %?s   "%r   c              3  <   >#    U  H  u  pUT;  d  M  Uv   M     g 7fr   rx   )ry   r   r   r   s      rN   r{   r   @  s%      (9U5H#?: (9Us   	r   z
The file 'z' already contains configuration information.
Remove the file to proceed.
Use `conda config --describe` to display default configuration.wc                X   > TR                   (       a  TR                  U 5      $ T" U 5      $ r   )rl   r/   )msgr   json_warningsstderr_writes    rN   <lambda> execute_config.<locals>.<lambda>|  s,    << %2$8$8$= %#%rP   )r   r   warning_handler   )
ParseErrorzinvalid yaml content:
)TF)prependr   )stdout_json_success)rc_pathwarningsr   )]rT   rS   r7   r   r   r   	common.ior   r   rl   rm   core.prefix_datar   fileshowdescriber   r   r   show_sourcesr   collect_allrc   r   r/   r   ri   r	   r   r   r   fromkeyslist_parametersr~   getattrr   rd   r   r   valuesr   schemerI   r   validate_configurationr   r   r   r   r   validatevalidate_allsystemenvr@   r   prefixfrom_contextassert_environmentprefix_pathwrite_defaultr   openreadr   r   r   osr   existsr   contentkeysget_keyr   stdinsysr   update	Exception
exceptionsr   zipr   addr   r   removeremove_item
remove_keycommonr   r   )/rW   rX   rS   r   r   r   rl   rm   r   r   r   get_key_pairssourcer   rf   reprsprovided_parametersprovided_plugin_parametersr   re   r   channelr   multichannel_namer   r   json_descriptionsr   r   prefix_datafhdata	rc_configr	  parsedr   argr   r   r   rg   rh   r   r   r   r   r   s/                                             @@@@@rN   rU   rU     s	     
 $-- yydii+t}}/H*tyyl$G^,11L^,11LMM<<

 /6.A.A.C.I.I.K.KNF FV+.K #    	 E!(!4!4!6!<!<!>tF8401[/0R  "? 5)*yy99"' (!%( # */ / II/ *& )#%? #( EX # #*"9"9";)0)H)H)J&3FG3FCS''3''3FG) +1*;<*;JCS%Z*;<-CGOOS1E%))$(K)S!E5))c%jAo$&)S!$))S! . |)<<A67 !A% $%%6#7#>#>#@(#@ LLW^^$4C8H8H7I"JJ#@(#$ &*0 899O7P7V7V7X-7X3)8 &x'CC7X-() "Q&(- .#$%7#8. )$%
 ;q>23&&(..0}} ==="' (!%( # */ / MM/ *&
 )#%? #( EX # ||AT%ATG..t4AT% !; : OO66t< :%! JJ)"&  Z 	M '' ($7(  '' ( %?	(  TYYw/0. 	+ ||"I&,'' (9@9M9M9S9S9U( '# JJ )<(; $66t<(; #'   	 4W=>4W__dST}}{{	  7002JKG"G	))			 --/&&(k--0HHI'??g"wwy(   	 *V V  '32HH,W56HH,W__dKL   	!I 
ww~~g		$	${# xx88?vi&7&7&<&<&>??C#++C0KD%G#$$dE]3 @
 zz!SYY^^,	BZZ(F$$V, T\\4;;7GWICMM#tWM5  H
 XX	T#t$  [[	Tc4( ! S!  88||/mm9L	
 "DAqa# "KP H
 =&(-H%ND    	B  	B/6wi@AA	BsT   +j7j=k%0k=k)k
%k)kk"">k4+,l "
k14
ll!)
deprecatedz26.9z27.3z=Use conda.cli.condarc.ConfigurationFile.key_exists() instead.)addendumc                J   ^ SSK Jn  U" U0 U4S jS9nUR                  U 5      $ )z7Deprecated. Use ConfigurationFile.key_exists() instead.r   r   c                &   > TR                  U 5      $ r   r/   r   r   s    rN   r   _key_exists.<locals>.<lambda>      HOOC$8rP   r   r	  r   )condarcr   
key_exists)r   r   r   r   r4   s    `   rN   _key_existsr1    s.     +8F
 S!!rP   z:Use conda.cli.condarc.ConfigurationFile.get_key() instead.c                h   ^ SSK JnJn  U" UUU4S jS9nUR                  U 5      u  pXtL a  U S4$ X4$ )z4Deprecated. Use ConfigurationFile.get_key() instead.r   )r   r   c                &   > TR                  U 5      $ r   r*  r+  s    rN   r   _get_key.<locals>.<lambda>  r-  rP   r.  N)r/  r   r   r  )r   r   r4   r   r   r   config_filer   s    `      rN   _get_keyr6    sI     4#8K
 $$S)JC Dy:rP   z:Use conda.cli.condarc.ConfigurationFile.set_key() instead.c                >    SSK Jn  U" US9nUR                  X5        g)z4Deprecated. Use ConfigurationFile.set_key() instead.r   r(  r	  N)r/  r   r   r   r   r4   r   r5  s        rN   _set_keyr:    s     +#F3K"rP   z>Use conda.cli.condarc.ConfigurationFile.remove_item() instead.c                >    SSK Jn  U" US9nUR                  X5        g)z8Deprecated. Use ConfigurationFile.remove_item() instead.r   r(  r8  N)r/  r   r  r9  s        rN   _remove_itemr<    s     +#F3KC&rP   z=Use conda.cli.condarc.ConfigurationFile.remove_key() instead.c                >    SSK Jn  U" US9nUR                  U 5        g)z7Deprecated. Use ConfigurationFile.remove_key() instead.r   r(  r8  N)r/  r   r  )r   r4   r   r5  s       rN   _remove_keyr>    s     +#F3K3rP   z7Use conda.cli.condarc.ConfigurationFile.read() instead.c                :    SSK Jn  U" U S9nUR                  5       $ )z1Deprecated. Use ConfigurationFile.read() instead.r   r(  )r   )r/  r   r  )r   r   r4   s      rN   _read_rcr@    s     +D)F;;=rP   z8Use conda.cli.condarc.ConfigurationFile.write() instead.c                <    SSK Jn  U" XS9nUR                  5         g)z2Deprecated. Use ConfigurationFile.write() instead.r   r(  )r   r	  N)r/  r   r   )r   r4   r   r5  s       rN   	_write_rcrB  !  s     +#>KrP   z=Use conda.cli.condarc.validate_provided_parameters() instead.c                "    SSK Jn  U" XU5        g)z7Deprecated. Use validate_provided_parameters() instead.r   )r   N)r/  r   )
parametersplugin_parametersr   r   s       rN   _validate_provided_parametersrF  .  s     6 HrP   )rB   r   returnr   )rW   r   rX   r   rG  r   )NF)rG  r   )rW   tuple[str, Any]r   str | os.PathLike[str] | PathrG  r`   )rW   r   rX   r   rG  z
int | Noner   )r   r   r   	list[str]rG  r   )r   r   r   rJ  r4   zdict[str, Any]rG  rH  )r   r   r   r   r4   r   rG  r`   )r   r   r4   r   rG  r`   )r   rI  rG  r   )r   rI  r4   r   rG  r`   )rD  Sequence[str]rE  rK  rG  r`   )7__doc__
__future__r   r  r  argparser   collections.abcr   	itertoolsr   loggingr   os.pathr   r	   textwrapr
   typingr   rb   r   r  r   r/  r   r   r   r   r   r   r   pathlibr   r   __name__logrO   rZ   ri   r   r   r   r   rU   deprecationsr%  r1  r6  r:  r<  r>  r@  rB  rF  rx   rP   rN   <module>rY     s  
 # 	 
  #        ; *  EE(HV.5p@C8
i$Z	 & 

L
	"
	" 

I 		 
 
, 

I
#
# 

M
'
' 

L
 
  

F

 

G

 

L
II$I 
	I
IrP   