ó
    cÛ–i½N  ã                   óÊ  • S r SrSSKrSSKrSSKrSSKJrJr  SSKJr  SSK	J
r
JrJrJr  SSKJr  S r " S	 S
\R"                  5      r " S S\5      r " S S\S9r " S S\R,                  5      r " S S\R.                  5      r " S S\R0                  5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rS rS r " S  S!\5      r " S" S#\5      r g)$z7Support for parsing Samba-related command-line options.ÚrestructuredTexté    N)ÚABCMetaÚabstractmethod)Úcopy)ÚCredentialsÚAUTO_USE_KERBEROSÚDONT_USE_KERBEROSÚMUST_USE_KERBEROS)Úget_burnt_commandlinec                 ó<  • SSSSS.nUR                  SS5      nSnU(       a  USS R                  5       (       d	  USS S	:X  a8  XTS   -  nUSS
 nU(       a  USS R                  5       (       a  M-  USS S	:X  a  M8   [        U5      nUR                  5       R                  SS5      n XcU   -  $ ! [         a(    SR	                  U5      n[
        R                  " U5      ef = f! [         a,  n	SR	                  X5      n[
        R                  " U5      eS
n	A	ff = f)z˜Custom option type to allow the input of sizes using byte, kb, mb ...

units, e.g. 2Gb, 4KiB ...
   e.g. Option("--size", type="bytes", metavar="SIZE")
é   i   i   i   @)ÚBÚKBÚMBÚGBÚ Ú r   Ú.NzA{0} option requires a numeric value, with an optional unit suffixÚIz3{0} invalid suffix '{1}', should be B, Kb, Mb or Gb)	ÚreplaceÚisdigitÚfloatÚ
ValueErrorÚformatÚoptparseÚOptionValueErrorÚupperÚKeyError)
ÚoptionÚoptÚvalueÚmultipliersÚvÚdigitsÚmÚmsgÚsuffixÚks
             Ú./usr/lib/python3/dist-packages/samba/getopt.pyÚcheck_bytesr*   %   s/  € ð ØØ$Ø+ñ-€Kð 	�‰�c˜2Ó€Að €FÞ
��!�A�—‘× Ñ  A a¨ F¨c£MØ�A‘$‰ˆØˆaˆbˆEˆö ��!�A�—‘× Ó  A a¨ F¨c¥Mð-Ü�&‹Mˆð �W‰W‹Y×Ñ˜s BÓ'€Fð-Ø˜vÑ&Ñ&Ð&øô ó -ð.ß/5©v°c«{ð 	ä×'Ò'¨Ó,Ð,ð-ûô ó -ð+ß,2©F°3«Nð 	ä×'Ò'¨Ó,Ð,ûð-ús$   Á=B0 Â)C% Â02C"Ã%
DÃ/'DÄDc                   ó$   • \ rS rSrSrS rS rSrg)ÚOptionMissingErroréL   z2One or more Options with required=True is missing.c                 ó   • Xl         g)zjRaised when required Options are missing from the command line.

:param options: list of 1 or more option
N©Úoptions)Úselfr0   s     r)   Ú__init__ÚOptionMissingError.__init__O   s	   € ð
 �ó    c                 óô   • [        U R                  5      S:X  a  U R                  S   nSU S3$ [        U R                   Vs/ s H  n[        U5      PM     sn5      nSR	                  U5      nSU S3$ s  snf )Nr   r   z	Argument z is required.z, zThe arguments z are required.)Úlenr0   ÚsortedÚstrÚjoin)r1   Úmissingr   r0   s       r)   Ú__str__ÚOptionMissingError.__str__V   ss   € Üˆt�|‰|Ó Ó!Ø—l‘l 1‘oˆGØ˜w˜i }Ð5Ð5ä¸¿ºÓEº¨fœc &žk¹ÑEÓFˆGØ—i‘i Ó(ˆGØ# G 9¨NÐ;Ð;ùò Fs   ÁA5r/   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r2   r;   Ú__static_attributes__© r4   r)   r,   r,   L   s   † Ù<òõ<r4   r,   c                   ó   • \ rS rSrSrSrg)ÚValidationErroré`   z}ValidationError is the exception raised by validators.

Should be raised from the __call__ method of the Validator subclass.
rC   N)r=   r>   r?   r@   rA   rB   rC   r4   r)   rE   rE   `   s   † ñò 	r4   rE   c                   ó(   • \ rS rSrSr\S 5       rSrg)Ú	Validatoréh   zpBase class for Validators used by SambaOption.

Subclass this to make custom validators and implement __call__.
c                 ó   • g ©NrC   )r1   Úfieldr!   s      r)   Ú__call__ÚValidator.__call__n   s   € àr4   rC   N)r=   r>   r?   r@   rA   r   rM   rB   rC   r4   r)   rH   rH   h   s   † ñð
 ñó ór4   rH   )Ú	metaclassc                   óØ   ^ • \ rS rSr\R
                  R                  SS/-   r\R
                  R                  S-   r\" \R
                  R                  5      r	\
\	S'   S rU 4S jrSrU =r$ )	ÚOptionés   ÚrequiredÚ
validators)ÚbytesrU   c                 óP   • [        U S5      =(       d    / nU H  nU" X5        M     g)z2Runs the list of validators on the current option.rT   N)Úgetattr)r1   r    r!   rT   Ú	validators        r)   Úrun_validatorsÚOption.run_validatorsy   s%   € ä˜T <Ó0×6°Bˆ
Û#ˆIÙ�cÖ!ò $r4   c                 óH   >• [         TU ]  X5      nU R                  X5        U$ )z�Override convert_value to run validators just after.

This can also be done in process() but there we would have to
replace the entire method.
)ÚsuperÚconvert_valuerY   )r1   r    r!   Ú	__class__s      €r)   r]   ÚOption.convert_value   s'   ø€ ô ‘Ñ% cÓ1ˆØ×Ñ˜CÔ'Øˆr4   rC   )r=   r>   r?   r@   r   rQ   ÚATTRSÚTYPESr   ÚTYPE_CHECKERr*   rY   r]   rB   Ú__classcell__©r^   s   @r)   rQ   rQ   s   s]   ø† Ø�O‰O×!Ñ! Z°Ð$>Ñ>€EØ�O‰O×!Ñ! JÑ.€EÙ˜Ÿ™×4Ñ4Ó5€LØ'€L�Ñò"÷ó r4   rQ   c            
       óP   ^ • \ rS rSrSrSS\SSSSSSS4
U 4S jjrU 4S jrSrU =r	$ )	ÚOptionParseréŠ   z@Samba OptionParser, adding support for required=True on Options.NÚerrorTc                 ó.   >• [         TU ]  XX4XVUX‰U
5
        g)z5
Ensure that option_class defaults to the Samba one.
N)r\   r2   )r1   ÚusageÚoption_listÚoption_classÚversionÚconflict_handlerÚdescriptionÚ	formatterÚadd_help_optionÚprogÚepilogr^   s              €r)   r2   ÚOptionParser.__init__�   s    ø€ ô 	‰Ñ˜¨\Ø)¸	Ø(°õ	8r4   c                 óô   >• / nU R                  5        HA  nUR                  (       d  M  [        XR                  5      nUb  M0  UR	                  U5        MC     U(       a  [        U5      e[        TU ]  X5      $ )zBLoop through required options if value is missing raise exception.)Ú_get_all_optionsrS   rW   ÚdestÚappendr,   r\   Úcheck_values)r1   ÚvaluesÚargsr:   r   r!   r^   s         €r)   ry   ÚOptionParser.check_valuesŸ   sc   ø€ àˆØ×+Ñ+Ö-ˆFØ��‰Ü ¯©Ó4�Ø“=Ø—N‘N 6Ö*ñ	 .ö Ü$ WÓ-Ð-ä‰wÑ# FÓ1Ð1r4   rC   )
r=   r>   r?   r@   rA   rQ   r2   ry   rB   rc   rd   s   @r)   rf   rf   Š   s5   ø† ÙJð Ø!Ø$ØØ")Ø!ØØ!%ØØ÷8÷$2ó 2r4   rf   c                   ó2   ^ • \ rS rSrSrU 4S jrS rSrU =r$ )ÚOptionGroupé®   a
  Samba OptionGroup base class.

Provides a generic set_option method to be used as Option callback,
so that one doesn't need to be created for every available Option.

Also overrides the add_option method, so it correctly initialises
the defaults on the OptionGroup.
c                 óÔ   >• [         TU ]  " U0 UD6nUR                  [        R                  :X  a  SOUR                  nU R                  X3R                  5       X@R                  5        U$ )z>Override add_option so it applies defaults during constructor.N)r\   Ú
add_optionÚdefaultr   Ú
NO_DEFAULTÚ
set_optionÚget_opt_stringÚparser)r1   r{   Úkwargsr    r‚   r^   s        €r)   r�   ÚOptionGroup.add_option¸   sS   ø€ ä‰gÒ  $Ð1¨&Ñ1ˆØŸ+™+¬×)<Ñ)<Ó<‘$À#Ç+Á+ˆØ�‰˜×/Ñ/Ó1°7¿K¹KÔHØˆ
r4   c                 ó†   • UR                   =(       d"    UR                  S   SS R                  SS5      n[        XU5        g)z<Callback to set the attribute based on the Option dest name.r   é   NÚ-Ú_)rw   Ú
_long_optsr   Úsetattr)r1   r   Úopt_strÚargr†   rw   s         r)   r„   ÚOptionGroup.set_option¿   s9   € à�{‰{×H˜f×/Ñ/°Ñ2°1°2Ð6×>Ñ>¸sÀCÓHˆÜ�˜CÕ r4   rC   )	r=   r>   r?   r@   rA   r�   r„   rB   rc   rd   s   @r)   r~   r~   ®   s   ø† ñõ÷!ð !r4   r~   c                   óP   ^ • \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )ÚSambaOptionséÅ   z+General Samba-related command line options.c           
      ó˜  >• SSK Jn  U" 5         [        [        R                  5      nUb   SS KnUR                  U5        SSK
Jn  [        TU ]5  US5        U R                  SSS[        S	S
U R                   S9  U R                  SSS[        SSU R"                  S9  U R                  SS[        SSU R$                  S9  U R                  SS[        SSU R&                  S9  S U l        U" 5       U l        S U l        g ! [         aC    Sn[        R                  R                  U5        [        R                  R                  5          GNf = f)Nr   )Úfault_setupz’WARNING: Using passwords on command line is insecure. Installing the setproctitle python module will hide these from shortly after program start.
)ÚLoadParmzSamba Common Optionsz-sz--configfileÚcallbackÚFILEzConfiguration file)ÚactionÚtypeÚmetavarÚhelpr˜   z-dz--debuglevelÚ
DEBUGLEVELúdebug levelz--optionÚOPTIONz%set smb.conf option from command linez--realmÚREALMzset the realm name)Úsambar–   r   ÚsysÚargvÚsetproctitleÚModuleNotFoundErrorÚstderrÚwriteÚflushÚsamba.paramr—   r\   r2   r�   r8   Ú_load_configfileÚ_set_debuglevelÚ_set_optionÚ
_set_realmÚ_configfileÚ_lpÚrealm)r1   r†   r–   Únew_proctitler¥   r&   r—   r^   s          €r)   r2   ÚSambaOptions.__init__È   sB  ø€ Ý%ÙŒô .¬c¯h©hÓ7ˆØÑ$ð	#Û#Ø×)Ñ)¨-Ô8õ 	)Ü‰Ñ˜Ð!7Ô8Ø�‰˜˜n°ZÜ ¨&Ð7KØ!%×!6Ñ!6ð 	ñ 	8ð 	�‰˜˜n°ZÜ ¨,¸]Ø!%×!5Ñ!5ð 	ñ 	7ð 	�‰˜
¨:Ü ¨(ØDØ!%×!1Ñ!1ð 	ñ 	3ð 	�‰˜	¨*Ü ¨'Ð8LØ!%§¡ð 	ñ 	2ð  ˆÔÙ“:ˆŒØˆ�
øô1 'ó #ðC�ô —
‘
× Ñ  Ô%Ü—
‘
× Ñ ×"ð#ús   ¬C< Ã<A	E	ÅE	c                 ó   • U R                   $ )z?Return path to the smb.conf file specified on the command line.©r¯   ©r1   s    r)   Úget_loadparm_pathÚSambaOptions.get_loadparm_pathñ   s   € à×ÑÐr4   c                 ó   • X0l         g rK   rµ   ©r1   r   r�   r�   r†   s        r)   r«   ÚSambaOptions._load_configfileõ   s   € ØÕr4   c                 ó®   •  U R                   R                  SU5        X4R
                  l        g ! [         a    [        R                  " SU S35      ef = f)NrŸ   zinvalid -d/--debug value: 'Ú')r°   ÚsetÚRuntimeErrorr   r   rz   Ú
debuglevelrº   s        r)   r¬   ÚSambaOptions._set_debuglevelø   sU   € ð	6Ø�H‰H�L‰L˜¨Ô,ð $'�‰Õ øô ó 	6Ü×+Ò+Ø-¨c¨U°!Ð4ó6ð 6ð	6ús	   ‚/ ¯%Ac                 óš   •  U R                   R                  SU5        X0l        g ! [         a    [        R                  " SU S35      ef = f)Nr±   zinvalid --realm value: 'r½   )r°   r¾   r¿   r   r   r±   rº   s        r)   r®   ÚSambaOptions._set_realm   sP   € ð	3Ø�H‰H�L‰L˜ #Ô&ð �
øô ó 	3Ü×+Ò+Ø*¨3¨%¨qÐ1ó3ð 3ð	3ús	   ‚% ¥%A
c                 ó$  • UR                  S5      S:X  a  [        R                  " S5      eUR                  SS5      n U R                  R                  US   US   5        g ! [         a#  n[        R                  " SU< SU< 35      eS nAff = f)NÚ=éÿÿÿÿz&--option option takes a 'a=b' argumentr   r   zinvalid --option option value z: )Úfindr   r   Úsplitr°   r¾   Ú	Exception)r1   r   r�   r�   r†   ÚaÚes          r)   r­   ÚSambaOptions._set_option  s‡   € Ø�8‰8�C‹=˜BÓÜ×+Ò+Ø8ó:ð :à�I‰I�c˜1Óˆð	CØ�H‰H�L‰L˜˜1™˜q ™tÕ$øÜó 	CÜ×+Ó+Û:=ºqÐAóCð Cûð	Cús   ¿"A" Á"
BÁ,B
Â
Bc                 ón  • U R                   b1  U R                  R                  U R                   5        U R                  $ [        R                  " S5      b;  U R                  R                  [        R                  " S5      5        U R                  $ U R                  R                  5         U R                  $ )z?Return loadparm object with data specified on the command line.ÚSMB_CONF_PATH)r¯   r°   ÚloadÚosÚgetenvÚload_defaultr¶   s    r)   Úget_loadparmÚSambaOptions.get_loadparm  s   € à×ÑÑ'Ø�H‰H�M‰M˜$×*Ñ*Ô+ð
 �x‰xˆô	 �YŠY�Ó'Ñ3Ø�H‰H�M‰Mœ"Ÿ)š) OÓ4Ô5ð �x‰xˆð �H‰H×!Ñ!Ô#Ø�x‰xˆr4   )r¯   r°   r±   )r=   r>   r?   r@   rA   r2   r·   r«   r¬   r®   r­   rÓ   rB   rc   rd   s   @r)   r“   r“   Å   s0   ø† Ù5õ'òR òò'òò	C÷ð r4   r“   c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )ÚSamba3Optionsi  z<General Samba-related command line options with an s3 param.c                 óZ   >• [         TU ]  U5        SSKJn  UR	                  5       U l        g )Nr   )Úparam)r\   r2   Úsamba.samba3rØ   Úget_contextr°   )r1   r†   Ús3paramr^   s      €r)   r2   ÚSamba3Options.__init__!  s#   ø€ Ü‰Ñ˜Ô Ý1Ø×&Ñ&Ó(ˆ�r4   )r°   ©r=   r>   r?   r@   rA   r2   rB   rc   rd   s   @r)   rÖ   rÖ     s   ø† ÙF÷)ó )r4   rÖ   c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )ÚHostOptionsi'  z?Command line options for connecting to target host or database.c                 ón   >• [         TU ]  US5        U R                  SSS[        SSU R                  SS9  g )	NzHost Optionsz-Hz--URLz%LDB URL for database or target serverÚURLr˜   ÚH)r�   r›   rœ   rš   r˜   rw   )r\   r2   r�   r8   r„   ©r1   r†   r^   s     €r)   r2   ÚHostOptions.__init__*  s:   ø€ Ü‰Ñ˜ Ô0à�‰˜˜gØDÜ ¨%¸
Ø!%§¡°sð 	ò 	<r4   rC   rÝ   rd   s   @r)   rß   rß   '  s   ø† ÙI÷<ó <r4   rß   c                   ó2   ^ • \ rS rSrSrU 4S jrS rSrU =r$ )ÚVersionOptionsi3  z/Command line option for printing Samba version.c                 ó`   >• [         TU ]  US5        U R                  SSSU R                  SS9  g )NzVersion Optionsz-Vz	--versionr˜   zDisplay version number)rš   r˜   r�   )r\   r2   r�   Ú_display_versionrã   s     €r)   r2   ÚVersionOptions.__init__5  s6   ø€ Ü‰Ñ˜Ð!2Ô3Ø�‰˜˜k°*Ø!%×!6Ñ!6Ø5ð 	ò 	7r4   c                 ób   • SS K n[        UR                  5        [        R                  " S5        g )Nr   )r¢   Úprintrm   r£   Úexit)r1   r   r�   r�   r†   r¢   s         r)   rè   ÚVersionOptions._display_version;  s   € ÛÜˆe�m‰mÔÜ�Š��r4   rC   )	r=   r>   r?   r@   rA   r2   rè   rB   rc   rd   s   @r)   ræ   ræ   3  s   ø† Ù9õ7÷ð r4   ræ   c                 óÚ   • U R                  5       S;   a  [        $ U R                  5       S;   a  [        $ U R                  5       S;   a  [        $ [        R
                  " SU< SU < 35      e)N)ÚyesÚtrueÚ1)ÚnoÚfalseÚ0)Úautoúinvalid ú option value: )Úlowerr
   r	   r   r   r   ©r�   r�   s     r)   Úparse_kerberos_arg_legacyrú   A  s]   € Ø
‡y�yƒ{Ð*Ó*Ü Ð Ø	�‰‹Ð,Ó	,Ü Ð Ø	�‰‹˜Ó	 Ü Ð ä×'Ó'Û)0²#ð)7ó 8ð 	8r4   c                 óÚ   • U R                  5       S:X  a  [        $ U R                  5       S:X  a  [        $ U R                  5       S:X  a  [        $ [        R
                  " SU< SU < 35      e)NrS   ÚdesiredÚoffrö   r÷   )rø   r
   r   r	   r   r   rù   s     r)   Úparse_kerberos_argrþ   M  s[   € Ø
‡y�yƒ{�jÓ Ü Ð Ø	�‰‹˜	Ó	!Ü Ð Ø	�‰‹˜Ó	Ü Ð ä×'Ó'Û)0²#ð)7ó 8ð 	8r4   c                   ó‚   ^ • \ rS rSrSrSU 4S jjrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSS jrSrU =r$ )ÚCredentialsOptionsiY  z0Command line options for specifying credentials.c           
      ó˜  >• X l         Ub  SU-  U l        OSU l        SU l        S U l        SU l        [
        TU ]  XR                  5        U R                  SSSU R                  [        SS	9  U R                  S
SSS[        U R                  S9  U R                  SSSS[        SU R                  S9  U R                  SSSS[        SU R                  S9  U R                  SSSSU R                  S9  U R                  SSSS[        SU R                  S9  U R                  SS SS!U R                  S9  U R                  S"S#S[        S$U R                   S9  U R                  S%S&S[        S'U R"                  S9  U R                  S(S)S*S[        S+U R$                  S9  U R                  S,S-S.S[        S/U R&                  S9  [)        5       U l        g )0NzCredentials Options (%s)zCredentials OptionsTFz--simple-bind-dnÚDNr˜   úDN to use for a simple bind©rœ   rš   r˜   r›   r�   z
--passwordÚPASSWORDÚPassword©rœ   rš   r�   r›   r˜   z-Uz
--usernameÚUSERNAMEÚUsername©rœ   rš   r›   r�   r˜   z-Wz--workgroupÚ	WORKGROUPÚ	Workgroupz-Nz	--no-passzDon't ask for a password)rš   r�   r˜   r   z--ipaddressÚ	IPADDRESSzIP address of serverz-Pz--machine-passz#Use stored machine account passwordz--use-kerberosúdesired|required|offúUse Kerberos authenticationz--use-krb5-ccacheÚ
KRB5CCNAMEzKerberos Credentials cachez-Az--authentication-fileÚAUTHFILEzAuthentication filez-kz
--kerberosÚKERBEROSz%DEPRECATED: Migrate to --use-kerberos)Úspecial_nameÚsectionÚask_for_passwordÚ	ipaddressÚmachine_passr\   r2   Ú_add_optionÚ_set_simple_bind_dnr8   Ú_set_passwordÚ_parse_usernameÚ_parse_workgroupÚ_set_no_passwordÚ_set_ipaddressÚ_set_machine_passÚ_set_kerberosÚ_set_krb5_ccacheÚ_set_auth_fileÚ_set_kerberos_legacyr   Úcreds)r1   r†   r  r^   s      €r)   r2   ÚCredentialsOptions.__init__\  s)  ø€ Ø(ÔØÑ#Ø5¸ÑDˆD�Là0ˆDŒLà $ˆÔØˆŒØ!ˆÔÜ‰Ñ˜§¡Ô.Ø×ÑÐ+°TÀ*Ø"&×":Ñ":ÄØ;ð 	ñ 	=ð 	×Ñ˜¨zÀ*Ø(¬s¸T×=OÑ=Oð 	ñ 	Qà×Ñ˜˜|°ZØ *´Ø(°4×3GÑ3Gð 	ñ 	Ið 	×Ñ˜˜}°kØ *´Ø)°D×4IÑ4Ið 	ñ 	Kð 	×Ñ˜˜{°:Ø8Ø"&×"7Ñ"7ð 	ñ 	9ð 	×Ñ˜˜]°KØ *´Ø4Ø"&×"5Ñ"5ð 	ñ 	7ð 	×Ñ˜Ð/Ø *ØCØ"&×"8Ñ"8ð 	ñ 	:ð 	×ÑÐ)Ð3IØ *´Ø;Àd×FXÑFXð 	ñ 	Zð 	×ÑÐ,°lØ *´Ø:Ø"&×"7Ñ"7ð 	ñ 	9ð 	×Ñ˜Ð6À
Ø *´Ø3Ø"&×"5Ñ"5ð 	ñ 	7ð 	×Ñ˜˜|°ZØ *´ØEÐPT×PiÑPið 	ñ 	kô !“]ˆ�
r4   c                 óð   • U R                   c  U R                  " U0 UD6$ SnU H=  nUR                  S5      (       d  M  X4R                  SSU R                   -  5      4-  nM?     U R                  " U0 UD6  g )NrC   z--z--%s-)r  r�   Ú
startswithr   )r1   Úargs1r‡   Úargs2rÊ   s        r)   r  ÚCredentialsOptions._add_option�  sw   € Ø×ÑÑ$Ø—?’? EÐ4¨VÑ4Ð4àˆÛˆAØ—<‘< ×%Ñ%ÙØ—i‘i  g°×0AÑ0AÑ&AÓBÐDÑDŠEñ ð 	�Š˜Ð) &Ó)r4   c                 óH   • U R                   R                  U5        SU l        g ©NF)r$  Úparse_stringr  rº   s        r)   r  Ú"CredentialsOptions._parse_usernameš  s   € Ø�
‰
×Ñ Ô$Ø!ˆÕr4   c                 ó:   • U R                   R                  U5        g rK   )r$  Ú
set_domainrº   s        r)   r  Ú#CredentialsOptions._parse_workgroupž  s   € Ø�
‰
×Ñ˜cÕ"r4   c                 óV   • U R                   R                  U5        SU l        SU l        g r,  )r$  Úset_passwordr  r  rº   s        r)   r  Ú CredentialsOptions._set_password¡  s$   € Ø�
‰
×Ñ Ô$Ø %ˆÔØ!ˆÕr4   c                 ó   • SU l         g r,  )r  rº   s        r)   r  Ú#CredentialsOptions._set_no_password¦  s
   € Ø %ˆÕr4   c                 ó   • SU l         g )NT)r  rº   s        r)   r  Ú$CredentialsOptions._set_machine_pass©  s
   € Ø ˆÕr4   c                 ó   • X0l         g rK   )r  rº   s        r)   r  Ú!CredentialsOptions._set_ipaddress¬  s   € Ø�r4   c                 ób   • [        S5        U R                  R                  [        X25      5        g )Nz0WARNING: The option -k|--kerberos is deprecated!)rë   r$  Úset_kerberos_staterú   rº   s        r)   r#  Ú'CredentialsOptions._set_kerberos_legacy¯  s#   € ÜÐ@ÔAØ�
‰
×%Ñ%Ô&?ÀÓ&MÕNr4   c                 óL   • U R                   R                  [        X25      5        g rK   )r$  r<  rþ   rº   s        r)   r   Ú CredentialsOptions._set_kerberos³  s   € Ø�
‰
×%Ñ%Ô&8¸Ó&FÕGr4   c                 ó:   • U R                   R                  U5        g rK   )r$  Úset_bind_dnrº   s        r)   r  Ú&CredentialsOptions._set_simple_bind_dn¶  s   € Ø�
‰
×Ñ˜sÕ#r4   c                 ó†   • SU l         U R                  R                  [        5        U R                  R	                  U5        g r,  )r  r$  r<  r
   Úset_named_ccacherº   s        r)   r!  Ú#CredentialsOptions._set_krb5_ccache¹  s/   € Ø %ˆÔØ�
‰
×%Ñ%Ô&7Ô8Ø�
‰
×#Ñ# CÕ(r4   c                 ó    • [         R                  R                  U5      (       a*  U R                  R	                  U5        SU l        SU l        g g r,  )rÐ   ÚpathÚexistsr$  Ú
parse_filer  r  rº   s        r)   r"  Ú!CredentialsOptions._set_auth_file¾  s<   € Ü�7‰7�>‰>˜#×ÑØ�J‰J×!Ñ! #Ô&Ø$)ˆDÔ!Ø %ˆDÕð r4   c                 óÒ  • U R                   R                  U5        U R                  (       a  U R                   R                  U5        O+U R                  (       a  U R                   R                  5         U(       aG  U R                   R                  5       (       d(   U R                   R                  U5        U R                   $ U R                   $ ! [         a     U R                   $ f = f)zpObtain the credentials set on the command-line.

:param lp: Loadparm object to use.
:return: Credentials object
)r$  Úguessr  Úset_machine_accountr  Úset_cmdline_callbacksÚauthentication_requestedrÉ   )r1   ÚlpÚfallback_machines      r)   Úget_credentialsÚ"CredentialsOptions.get_credentialsÄ  s«   € ð 	�
‰
×Ñ˜ÔØ××Ø�J‰J×*Ñ*¨2Õ.Ø×"×"Ø�J‰J×,Ñ,Ô.ö  D§J¡J×$GÑ$G×$IÑ$IðØ—
‘
×.Ñ.¨rÔ2ð �z‰zÐˆt�z‰zÐøô ó Øà�z‰zÐðús   ÂC Ã
C&Ã%C&)r  r$  r  r  r  r  rK   )F)r=   r>   r?   r@   rA   r2   r  r  r  r  r  r  r  r#  r   r  r!  r"  rR  rB   rc   rd   s   @r)   r   r   Y  sT   ø† Ù:÷1#òf	*ò"ò#ò"ò
&ò!òòOòHò$ò)ò
&÷ò r4   r   c                   óZ   ^ • \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rSS
 jrSrU =r$ )ÚCredentialsOptionsDoubleiÛ  z?Command line options for specifying credentials of two servers.c           	      ó
  >• [         TU ]  U5        SU l        U R                  SSSU R                  [
        SS9  U R                  SSSS	[
        U R                  S
9  U R                  SSS[
        SU R                  S9  U R                  SSS[
        SU R                  S9  U R                  SSSS9  U R                  SSS[
        SU R                  S9  U R                  SSS[
        SU R                  S9  [        5       U l        g )NTz--simple-bind-dn2ÚDN2r˜   r  r  z--password2Ú	PASSWORD2r  r  z--username2Ú	USERNAME2zUsername for second serverr
  z--workgroup2Ú
WORKGROUP2zWorkgroup for second serverz
--no-pass2Ú
store_truez.Don't ask for a password for the second server)rš   r�   z--use-kerberos2r  r  z--kerberos2Ú	KERBEROS2zUse Kerberos)r\   r2   Úno_pass2r�   Ú_set_simple_bind_dn2r8   Ú_set_password2Ú_parse_username2Ú_parse_workgroup2Ú_set_kerberos2Ú_set_kerberos2_legacyr   Úcreds2rã   s     €r)   r2   Ú!CredentialsOptionsDouble.__init__Þ  s*  ø€ Ü‰Ñ˜Ô ØˆŒØ�‰Ð+°UÀ:Ø!%×!:Ñ!:ÄØ:ð 	ñ 	<ð 	�‰˜¨{À:Ø'¬cØ!%×!4Ñ!4ð 	ñ 	6ð 	�‰˜¨{Ø)´Ø9Ø!%×!6Ñ!6ð 	ñ 	8ð 	�‰˜°Ø)´Ø:Ø!%×!7Ñ!7ð 	ñ 	9ð 	�‰˜¨\ØMð 	ñ 	Oà�‰Ð)Ð3IØ)´Ø:ÀT×EXÑEXð 	ñ 	Zð
 	�‰˜¨{Ø)´Ø+°d×6PÑ6Pð 	ñ 	Rô "“mˆ�r4   c                 ó:   • U R                   R                  U5        g rK   )rd  r-  rº   s        r)   r`  Ú)CredentialsOptionsDouble._parse_username2û  s   € Ø�‰× Ñ  Õ%r4   c                 ó:   • U R                   R                  U5        g rK   )rd  r0  rº   s        r)   ra  Ú*CredentialsOptionsDouble._parse_workgroup2þ  s   € Ø�‰×Ñ˜sÕ#r4   c                 óH   • U R                   R                  U5        SU l        g r,  )rd  r3  r]  rº   s        r)   r_  Ú'CredentialsOptionsDouble._set_password2  s   € Ø�‰× Ñ  Ô%Øˆ�r4   c                 óL   • U R                   R                  [        X25      5        g rK   ©rd  r<  rþ   rº   s        r)   rc  Ú.CredentialsOptionsDouble._set_kerberos2_legacy  ó   € Ø�‰×&Ñ&Ô'9¸#Ó'GÕHr4   c                 óL   • U R                   R                  [        X25      5        g rK   rm  rº   s        r)   rb  Ú'CredentialsOptionsDouble._set_kerberos2  ro  r4   c                 ó:   • U R                   R                  U5        g rK   )rd  rA  rº   s        r)   r^  Ú-CredentialsOptionsDouble._set_simple_bind_dn2  s   € Ø�‰×Ñ Õ$r4   c                 ó(  • U(       a  U R                   R                  U5        O9U R                   R                  5       (       d  U R                   R                  5         U R                  (       a  U R                   R                  5         U R                   $ )z¥Obtain the credentials set on the command-line.

:param lp: Loadparm object to use.
:param guess: Try guess Credentials from environment
:return: Credentials object
)rd  rL  Úget_usernameÚset_anonymousr]  rN  )r1   rP  rL  s      r)   Úget_credentials2Ú)CredentialsOptionsDouble.get_credentials2  s]   € ö Ø�K‰K×Ñ˜bÕ!Ø—‘×)Ñ)×+Ñ+Ø�K‰K×%Ñ%Ô'à�=�=Ø�K‰K×-Ñ-Ô/Ø�{‰{Ðr4   )rd  r]  )T)r=   r>   r?   r@   rA   r2   r`  ra  r_  rc  rb  r^  rw  rB   rc   rd   s   @r)   rU  rU  Û  s5   ø† ÙIõ$ò:&ò$òòIòIò%÷ò r4   rU  )!rA   Ú__docformat__r   rÐ   r£   Úabcr   r   r   Úsamba.credentialsr   r   r	   r
   Úsamba._gluer   r*   r   r,   rÉ   rE   rH   rQ   rf   r~   r“   rÖ   rß   ræ   rú   rþ   r   rU  rC   r4   r)   Ú<module>r}     sí   ðñ$ >à"€ã Û 	Û 
ß 'Ý ÷ó õ .ò$-ôN<˜×2Ñ2ô <ô(	�iô 	ô˜'ò ôˆX�_‰_ô ô.!2�8×(Ñ(ô !2ôH!�(×&Ñ&ô !ô.V�;ô Vôr)�Lô )ô	<�+ô 	<ô�[ô ò	8ò	8ô˜ô ôDAÐ1õ Ar4   