
    .hh                     Z   S SK r S SKrS SKrS SKJr  S SKJr  S SKrS SKr	S SK
Jr  S SKrS SKJr   S SKrS rS\R$                  S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rSr Sr! " S S\"5      r# " S S\#5      r$ " S S\#5      r% " S S\#5      r&\'=r(r)S r*S r+ " S S 5      r,S! r-S" r. " S# S$5      r/S% r0\,\/4r1 " S& S'5      r2 " S( S)5      r3 " S* S+5      r4 " S, S-5      r5 " S. S/5      r6 " S0 S15      r7S=r8=r9r:SFS2 jr;  SGS3 jr<SFS4 jr=S5 r>SHS6 jr? " S7 S8\(       a  \R                  O\A5      rB " S9 S:5      rC " S; S<5      rD " S= S>\D5      rE " S? S@5      rF\FrG\HSA:X  a}  \F" SB5      rI \J" \IR                  R                  5       5        \7" \I5      rN\NR                  5         \NR                  SSD5        \NR                  SES5         \N" 5        H  rR\J" \R5        M     gg! \ a    Sr GNf = f! \# a  rM\J" SC\M5         SrMCMNxSrMCMff = f! \# a  rM\J" SC\M5         SrMCMgSrMCMff = f)I    N)datetime)Decimal)expat)BytesIOc                 n    U R                  SS5      n U R                  SS5      n U R                  SS5      $ )N&z&amp;<z&lt;>z&gt;)replace)ss    6/opt/python-3.13.8/usr/lib/python3.13/xmlrpc/client.pyescaper      s3    			#wA			#vA99S&""    z%d.%d   ii   iDiiipiԁiCiBiiic                   ,    \ rS rSr\R
                  rSrg)Error    N)__name__
__module____qualname____firstlineno__object__str____static_attributes__r   r   r   r   r      s    nnGr   r   c                        \ rS rSrS rS rSrg)ProtocolError   c                 ^    [         R                  U 5        Xl        X l        X0l        X@l        g N)r   __init__urlerrcodeerrmsgheaders)selfr"   r#   r$   r%   s        r   r!   ProtocolError.__init__   s"    tr   c           	          SU R                   R                  < SU R                  < SU R                  < SU R                  < S3	$ )Nr	    for :  r
   )	__class__r   r"   r#   r$   r&   s    r   __repr__ProtocolError.__repr__   s.     ^^$$dhhdkkK	r   )r#   r$   r%   r"   Nr   r   r   r   r!   r.   r   r   r   r   r   r      s    r   r   c                       \ rS rSrSrg)ResponseError   r   N)r   r   r   r   r   r   r   r   r2   r2      s    r   r2   c                        \ rS rSrS rS rSrg)Fault   c                 F    [         R                  U 5        Xl        X l        g r    )r   r!   	faultCodefaultString)r&   r8   r9   extras       r   r!   Fault.__init__   s    t"&r   c                 p    SU R                   R                  < SU R                  < SU R                  < S3$ )Nr	   r+   r*   r
   )r,   r   r8   r9   r-   s    r   r.   Fault.__repr__   s*     $ 7 7 $0@0@B 	Br   r8   r9   Nr0   r   r   r   r5   r5      s    'Br   r5   c                 x    U R                   b  U R                  S S9n U R                  SS9R                  SS5      $ )N)tzinfoseconds)timespec- )r@   r   	isoformatvalues    r   _iso8601_formatrH      s:    ||T*??I?.66sB??r   c                     [        U [        5      (       a  [        U 5      $ [        U [        [        R
                  45      (       d1  U S:X  a  [        R                  " 5       n [        R                  " U 5      n SU S S -  $ )Nr   z%04d%02d%02dT%02d:%02d:%02d   )
isinstancer   rH   tupletimestruct_time	localtimerF   s    r   	_strftimerP     sc    %""u%%eeT%5%5677A:IIKEu%(5!944r   c                   `    \ rS rSrSS 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g)DateTimei  c                 \    [        U[        5      (       a  Xl        g [        U5      U l        g r    )rK   strrG   rP   )r&   rG   s     r   r!   DateTime.__init__  s     eS!!J"5)DJr   c                    [        U[        5      (       a  U R                  nUR                  nX#4$ [        U[        5      (       a  U R                  n[	        U5      nX#4$ [        U[
        5      (       a  U R                  nUnX#4$ [        US5      (       a#  U R                  5       nUR                  5       nX#4$ U n[        nX#4$ )N	timetuple)	rK   rR   rG   r   rH   rT   hasattrrW   NotImplementedr&   otherr   os       r   make_comparableDateTime.make_comparable  s    eX&&

AA t x((

A&A t s##

AA t UK(( A!A t AAtr   c                 N    U R                  U5      u  p#U[        L a  [        $ X#:  $ r    r]   rY   rZ   s       r   __lt__DateTime.__lt__,  )    ##E*!!ur   c                 N    U R                  U5      u  p#U[        L a  [        $ X#:*  $ r    r`   rZ   s       r   __le__DateTime.__le__2  )    ##E*!!vr   c                 N    U R                  U5      u  p#U[        L a  [        $ X#:  $ r    r`   rZ   s       r   __gt__DateTime.__gt__8  rc   r   c                 N    U R                  U5      u  p#U[        L a  [        $ X#:  $ r    r`   rZ   s       r   __ge__DateTime.__ge__>  rg   r   c                 N    U R                  U5      u  p#U[        L a  [        $ X#:H  $ r    r`   rZ   s       r   __eq__DateTime.__eq__D  rg   r   c                 D    [         R                  " U R                  S5      $ Nz%Y%m%dT%H:%M:%S)rM   strptimerG   r-   s    r   rW   DateTime.timetupleJ  s    }}TZZ):;;r   c                     U R                   $ r    rF   r-   s    r   r   DateTime.__str__R  s    zzr   c                 `    SU R                   R                  U R                  [        U 5      4-  $ )Nz<%s %r at %#x>)r,   r   rG   idr-   s    r   r.   DateTime.__repr__U  s&    4>>#:#:DJJ4"QQQr   c                 @    [        U5      R                  5       U l        g r    )rT   striprG   r&   datas     r   decodeDateTime.decodeX  s    Y__&
r   c                 ~    UR                  S5        UR                  U R                  5        UR                  S5        g Nz<value><dateTime.iso8601>z</dateTime.iso8601></value>
)writerG   )r&   outs     r   encodeDateTime.encode[  s,    		-.		$**		12r   rF   N)r   )r   r   r   r   r!   r]   ra   re   ri   rl   ro   rW   r   r.   r~   r   r   r   r   r   rR   rR     s?    *$<R'3r   rR   c                 <    [        5       nUR                  U 5        U$ r    )rR   r~   r}   rG   s     r   	_datetimer   `  s    JE	LLLr   c                 0    [         R                  " U S5      $ rr   )r   rs   r}   s    r   _datetime_typer   f  s    T#455r   c                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
Binaryio  Nc                     Uc  SnOH[        U[        [        45      (       d"  [        SUR                  R
                  -  5      e[        U5      nXl        g )Nr   z#expected bytes or bytearray, not %s)rK   bytes	bytearray	TypeErrorr,   r   r}   r|   s     r   r!   Binary.__init__r  sN    <DdUI$677 E $ 7 7!8 9 9;D	r   c                 .    [        U R                  S5      $ )Nzlatin-1)rT   r}   r-   s    r   r   Binary.__str__  s    499i((r   c                 b    [        U[        5      (       a  UR                  nU R                  U:H  $ r    )rK   r   r}   )r&   r[   s     r   ro   Binary.__eq__  s'    eV$$JJEyyE!!r   c                 :    [         R                  " U5      U l        g r    )base64decodebytesr}   r|   s     r   r~   Binary.decode  s    &&t,	r   c                     UR                  S5        [        R                  " U R                  5      nUR                  UR	                  S5      5        UR                  S5        g Nz<value><base64>
asciiz</base64></value>
)r   r   encodebytesr}   r~   )r&   r   encodeds      r   r   Binary.encode  sE    		%&$$TYY/		'..)*		'(r   r   r    )
r   r   r   r   r!   r   ro   r~   r   r   r   r   r   r   r   o  s    )"
-)r   r   c                 <    [        5       nUR                  U 5        U$ r    )r   r~   r   s     r   _binaryr     s    HE	LLLr   c                   &    \ rS rSrS rS rS rSrg)ExpatParseri  c                     [         R                  " S S 5      =U l        nXl        UR                  Ul        UR                  Ul        UR                  Ul	        S nUR                  US 5        g r    )r   ParserCreate_parser_targetstartStartElementHandlerendEndElementHandlerr}   CharacterDataHandlerxml)r&   targetparserencodings       r   r!   ExpatParser.__init__  sW     % 2 24 >>v%+\\"#):: &,kk#

8T"r   c                 <    U R                   R                  US5        g NF)r   Parser|   s     r   feedExpatParser.feed  s    4'r   c                 j     U R                   nU ?U ? UR                  SS5        g ! [         a     g f = f)Nr   T)r   r   r   AttributeError)r&   r   s     r   closeExpatParser.close  s=    	$\\F dlLLd#	  		s   % 
22)r   r   N)r   r   r   r   r!   r   r   r   r   r   r   r   r     s    #($r   r   c                      \ rS rSrSS jr0 rS rS rS r\\\	" S5      '   S r
\
\\'   S r\\\'   \rS	 r\\\'   \4S
 jr\\\'   S r\\\'   \\\'   S r\\\'   \\\'   \4S jr\\\'   S r\\\'   S r\\\'   \\\ '   \\S'   Sr!g)
Marshalleri  Nc                 8    0 U l         S U l        Xl        X l        g r    )memor}   r   
allow_none)r&   r   r   s      r   r!   Marshaller.__init__  s    		 $r   c                 J   / nUR                   nU R                  n[        U[        5      (       a1  U" S5        U" UR                  UR
                  S.U5        U" S5        O1U" S5        U H  nU" S5        U" XS5        U" S5        M     U" S5        SR                  U5      nU$ )	Nz<fault>
r>   z	</fault>
z	<params>
z<param>
z	</param>
z
</params>
rD   )append_Marshaller__dumprK   r5   r8   r9   join)r&   valuesr   r   dumpvresults          r   dumpsMarshaller.dumps  s    

{{fe$$+v//!'!3!35 , ,k"Ql#  - r   c                 v    U R                   [        U5         nU" XU5        g ! [         a    [        US5      (       d  [	        S[        U5      -  5      e[        U5      R
                   H7  nX@R                   R                  5       ;   d  M"  [	        S[        U5      -  5      e   U R                   S   n Nf = f)N__dict__zcannot marshal %s objects_arbitrary_instance)dispatchtypeKeyErrorrX   r   __mro__keys)r&   rG   r   ftype_s        r   __dumpMarshaller.__dump  s    	5d5k*A 	
$u  	55*-- ;d5k IJJ e,,MM..00#$?$u+$MNN -
 34A	5s   $ A%B8(B87B8c                 L    U R                   (       d  [        S5      eU" S5        g )Nz0cannot marshal None unless allow_none is enabledz<value><nil/></value>)r   r   r&   rG   r   s      r   dump_nilMarshaller.dump_nil   s    NOO%&r   c                 X    U" S5        U" U=(       a    S=(       d    S5        U" S5        g )Nz<value><boolean>10z</boolean></value>
r   r   s      r   	dump_boolMarshaller.dump_bool  s%     !em"s#$%r   c                     U[         :  d
  U[        :  a  [        S5      eU" S5        U" [        [	        U5      5      5        U" S5        g )Nzint exceeds XML-RPC limitsz<value><int>z</int></value>
)MAXINTMININTOverflowErrorrT   intr   s      r   	dump_longMarshaller.dump_long  s<    6>UV^ <==nc#e*o !r   c                 F    U" S5        U" [        U5      5        U" S5        g )Nz<value><double>z</double></value>
)reprr   s      r   dump_doubleMarshaller.dump_double  s      d5k#$r   c                 @    U" S5        U" U" U5      5        U" S5        g )Nz<value><string>z</string></value>
r   )r&   rG   r   r   s       r   dump_unicodeMarshaller.dump_unicode  s      fUm#$r   c                 ~    U" S5        [         R                  " U5      nU" UR                  S5      5        U" S5        g r   )r   r   r~   )r&   rG   r   r   s       r   
dump_bytesMarshaller.dump_bytes#  s5    !"$$U+gnnW%&#$r   c                     [        U5      nX0R                  ;   a  [        S5      eS U R                  U'   U R                  nU" S5        U H  nU" XR5        M     U" S5        U R                  U	 g )Nz"cannot marshal recursive sequencesz<value><array><data>
z</data></array></value>
)rx   r   r   r   )r&   rG   r   ir   r   s         r   
dump_arrayMarshaller.dump_array+  sd    uI		>@AA		!{{&'AN )*IIaLr   c                    [        U5      nX@R                  ;   a  [        S5      eS U R                  U'   U R                  nU" S5        UR	                  5        HN  u  pgU" S5        [        U[        5      (       d  [        S5      eU" SU" U5      -  5        U" Xr5        U" S5        MP     U" S5        U R                  U	 g )Nz%cannot marshal recursive dictionariesz<value><struct>
z	<member>
zdictionary key must be stringz<name>%s</name>
z
</member>
z</struct></value>
)rx   r   r   r   itemsrK   rT   )r&   rG   r   r   r   r   kr   s           r   dump_structMarshaller.dump_struct9  s    uI		>CDD		!{{!"KKMDA,a%% ?@@%q	12N-  " 	#$IIaLr   c                 F    U" S5        U" [        U5      5        U" S5        g r   )rP   r   s      r   dump_datetimeMarshaller.dump_datetimeK  s!    )*i-.r   c                     UR                   [        ;   a  X l        UR                  U 5        U ?g U R	                  UR
                  U5        g r    )r,   WRAPPERSr   r   r   r   r   s      r   dump_instanceMarshaller.dump_instanceQ  s:    ??h&JLL
 U^^U3r   r   )r   r}   r   r   r   r   )"r   r   r   r   r!   r   r   r   r   r   r   boolr   r   dump_intr   floatr   r   rT   r   r   r   r   rL   listr   dictr   r   r   rR   r   r   r   r   r   r   r     s    % H6$' $HT$Z& HTN" HSM H% "HUO06 % !HSM%
 !HUO$HY
 !HUOHTN/5   !HTN/ 'HX4 'HX$HV '4H"#r   r   c                   r   \ rS rSrS/S jrS rS rS rS rS r	S r
S	 r0 rS
 r\\S'   S r\\S'   S r\\S'   \\S'   \\S'   \\S'   \\S'   \\S'   S r\\S'   \\S'   S r\\S'   S r\\S'   \\S'   S r\\S'   S r\\S '   S! r\\S"'   S# r\\S$'   S% r\\S&'   S' r\\S('   S) r\\S*'   S+ r\\S,'   S-rg.)0Unmarshallerie  c                     S U l         / U l        / U l        / U l        SU l        S U l        SU l        U R                  R                  U l        U=(       d    UU l        X l	        g )NFutf-8)
_type_stack_marks_data_value_methodname	_encodingr   _use_datetime
_use_bytes)r&   use_datetimeuse_builtin_typess      r   r!   Unmarshaller.__init__q  sW    

 kk((.>,+r   c                     U R                   b  U R                  (       a
  [        5       eU R                   S:X  a  [        S0 U R                  S   D6e[        U R                  5      $ )Nfaultr   r   )r  r  r2   r5   r  rL   r-   s    r   r   Unmarshaller.close}  sK    ::/!:: )$++a.))T[[!!r   c                     U R                   $ r    )r  r-   s    r   getmethodnameUnmarshaller.getmethodname  s    r   c                     Xl         g r    )r  )r&   r   
standalones      r   r   Unmarshaller.xml  s    !r   c                 *   SU;   a  UR                  S5      S   nUS:X  d  US:X  a.  U R                  R                  [        U R                  5      5        / U l        U R                  (       a  XR                  ;  a  [        SU-  5      eUS:H  U l        g )N:arraystructzunknown tag %rrG   )	splitr  r   lenr  r  r  r   r2   )r&   tagattrss      r   r   Unmarshaller.start  sv    #:))C.$C'>SH_KKs4;;/0
;;3mm3 03 677g~r   c                 :    U R                   R                  U5        g r    )r  r   )r&   texts     r   r}   Unmarshaller.data  s    

$r   c                      U R                   U   nU" U SR                  U R                  5      5      $ ! [         a>    SU;  a   g  U R                   UR                  S5      S      n NX! [         a      g f = ff = f)Nr!  r"  rD   )r   r   r%  r   r  )r&   r'  r   s      r   r   Unmarshaller.end  s~    	c"A rwwtzz*++  	#~MM#))C."45 	s'   3 A;!A))
A73A;6A77A;c                      U R                   U   nU" X5      $ ! [         a>    SU;  a   g  U R                   UR                  S5      S      n N>! [         a      g f = ff = f)Nr!  r"  )r   r   r%  )r&   r'  r}   r   s       r   end_dispatchUnmarshaller.end_dispatch  sn    	c"A }  	#~MM#))C."45 	s&    A!!A
AA!AA!c                 4    U R                  S 5        SU l        g Nr   )r   r  r|   s     r   end_nilUnmarshaller.end_nil  s    Dr   nilc                     US:X  a  U R                  S5        O#US:X  a  U R                  S5        O[        S5      eSU l        g )Nr   Fr   Tzbad boolean valuer   )r   r   r  r|   s     r   end_booleanUnmarshaller.end_boolean  s;    3;KKS[KK/00r   booleanc                 F    U R                  [        U5      5        SU l        g r3  )r   r   r  r|   s     r   end_intUnmarshaller.end_int  s    CIr   i1i2i4i8r   
bigintegerc                 F    U R                  [        U5      5        SU l        g r3  )r   r  r  r|   s     r   
end_doubleUnmarshaller.end_double  s    E$K r   doubler  c                 F    U R                  [        U5      5        SU l        g r3  )r   r   r  r|   s     r   end_bigdecimalUnmarshaller.end_bigdecimal  s    GDM"r   
bigdecimalc                     U R                   (       a  UR                  U R                   5      nU R                  U5        SU l        g r3  )r  r~   r   r  r|   s     r   
end_stringUnmarshaller.end_string  s.    >>;;t~~.DDr   stringnamec                     U R                   R                  5       nU R                  US  /U R                  US & SU l        g r3  )r  popr  r  )r&   r}   marks      r   	end_arrayUnmarshaller.end_array  s7    {{ "kk$%01DEr   r#  c                     U R                   R                  5       n0 nU R                  US  n[        S[	        U5      S5       H  nXES-      X4U   '   M     U/U R                  US & SU l        g )Nr   r      )r  rQ  r  ranger&  r  )r&   r}   rR  r  r   r   s         r   
end_structUnmarshaller.end_struct  sh    {{ DE"q#e*a(A"Q3ZDqN )"VDEr   r$  c                     [        5       nUR                  UR                  S5      5        U R                  (       a  UR                  nU R                  U5        SU l        g )Nr   r   )r   r~   r   r  r}   r   r  r&   r}   rG   s      r   
end_base64Unmarshaller.end_base64  sA    T[[)*??JJEEr   r   c                     [        5       nUR                  U5        U R                  (       a  [        U5      nU R	                  U5        g r    )rR   r~   r  r   r   r[  s      r   end_dateTimeUnmarshaller.end_dateTime  s4    
T"4(EEr   zdateTime.iso8601c                 J    U R                   (       a  U R                  U5        g g r    )r  rL  r|   s     r   	end_valueUnmarshaller.end_value  s     ;;OOD! r   rG   c                     SU l         g )Nparamsr  r|   s     r   
end_paramsUnmarshaller.end_params  s	    
r   re  c                     SU l         g )Nr  rf  r|   s     r   	end_faultUnmarshaller.end_fault  s	    
r   r  c                 v    U R                   (       a  UR                  U R                   5      nXl        SU l        g )N
methodName)r  r~   r  r  r|   s     r   end_methodNameUnmarshaller.end_methodName  s(    >>;;t~~.D!
r   rm  )
r  r  r  r  r  r  r  r  r  r   NFF)r   r   r   r   r!   r   r  r   r   r}   r   r0  r   r4  r8  r<  rD  rH  rL  rS  rX  r\  r_  rb  rg  rj  rn  r   r   r   r   r  r  e  s\   
," "	' ,   H HUO &HY HTNHTNHTNHTNHUO$H\ $HX"HW ,H\
 $HX!HV
 "HW $HX $HX $0H "
 "HW#HX!HW"
 ,H\r   r  c                   &    \ rS rSrS rS rS rSrg)_MultiCallMethodi'  c                     Xl         X l        g r    )_MultiCallMethod__call_list_MultiCallMethod__name)r&   	call_listrO  s      r   r!   _MultiCallMethod.__init__*  s    $r   c                 P    [        U R                  U R                  < SU< 35      $ N.)rr  rt  ru  r&   rO  s     r   __getattr___MultiCallMethod.__getattr__-  s     0 0T[[$2OPPr   c                 R    U R                   R                  U R                  U45        g r    )rt  r   ru  r&   argss     r   __call___MultiCallMethod.__call__/  s    d 34r   )__call_list__nameNr   r   r   r   r!   r|  r  r   r   r   r   rr  rr  '  s    Q5r   rr  c                        \ rS rSrS rS rSrg)MultiCallIteratori2  c                     Xl         g r    results)r&   r  s     r   r!   MultiCallIterator.__init__6  s    r   c                     U R                   U   n[        U[        5      (       a  [        US   US   5      e[        U[        5      (       a  US   $ [        S5      e)Nr8   r9   r   z#unexpected type in multicall result)r  rK   r  r5   r  
ValueError)r&   r   items      r   __getitem__MultiCallIterator.__getitem__9  sU    ||AdD!![)4+>??d##7NBCCr   r  N)r   r   r   r   r!   r  r   r   r   r   r  r  2  s    Dr   r  c                   ,    \ rS rSrS rS rS rS rSrg)	MultiCalliB  c                     Xl         / U l        g r    )_MultiCall__server_MultiCall__call_list)r&   servers     r   r!   MultiCall.__init__S  s    r   c                 J    SU R                   R                  [        U 5      4-  $ )Nz<%s at %#x>)r,   r   rx   r-   s    r   r.   MultiCall.__repr__W  s      7 7DBBBr   c                 .    [        U R                  U5      $ r    )rr  r  r{  s     r   r|  MultiCall.__getattr__Z  s     0 0$77r   c                     / nU R                    H  u  p#UR                  X#S.5        M     [        U R                  R                  R                  U5      5      $ )N)rm  re  )r  r   r  r  system	multicall)r&   marshalled_listrO  r  s       r   r  MultiCall.__call__]  sL    **JD""4#IJ + !!5!5!?!?!PQQr   )r  __serverN)	r   r   r   r   r!   r.   r|  r  r   r   r   r   r  r  B  s    "C8Rr   r  c                 J   [         (       ai  [        (       a^  U(       a  [        n[        R                  nO U (       a  [        n[
        nO[        n[
        n[        SSX2[        5      n[        U5      nXT4$ [        XS9n[         (       a  [        U5      nXT4$ [        U5      nXT4$ )NTFr  r  )

FastParserFastUnmarshallerr   r   r   r   r   r5   r  r   )r  r  
mkdatetimemkbytesr   r   s         r   	getparserr  o  s     z&&'J((G'JG"JG!$wEJF# > <]:'F > !(F>r   c                 r   [        U [        5      (       a  SnOU(       a  [        U [        5      (       a   U(       d  Sn[        (       a  [        U5      nO[	        X45      nUR                  U 5      nUS:w  a  S[        U5      -  nOSnU(       a	  USUSUS4nOU(       a  USUS	4nOU$ S
R                  U5      $ )NrV  r
  z$<?xml version='1.0' encoding='%s'?>
z<?xml version='1.0'?>
z<methodCall>
<methodName>z</methodName>
z</methodCall>
z<methodResponse>
z</methodResponse>
rD   )rK   r5   rL   FastMarshallerr   r   rT   r   )re  
methodnamemethodresponser   r   mr}   	xmlheaders           r   r   r     s    0 &%  	Jvu55 ~8$x,776?D7;c(mK	-	  &(9 
  !	 774=r   c                     [        XS9u  p4UR                  U 5        UR                  5         UR                  5       UR                  5       4$ Nr  )r  r   r   r  )r}   r  r  pus        r   loadsr    s<     ,TDAFF4LGGI779aoo'''r   c                     [         (       d  [        e[        5       n[         R                  " SUSS9 nUR	                  U 5        S S S 5        UR                  5       $ ! , (       d  f       UR                  5       $ = f)NwbrV  )modefileobjcompresslevel)gzipNotImplementedErrorr   GzipFiler   getvalue)r}   r   gzfs      r   gzip_encoder    sY    
 4!!	A	D!1	=		$ 
>::< 
>	=::<s   A
A9c                 d   [         (       d  [        e[         R                  " S[        U 5      S9 n US:  a  UR	                  5       nOUR	                  US-   5      n S S S 5        US:  a  [        W5      U:  a  [        S5      eW$ ! [
         a    [        S5      ef = f! , (       d  f       NI= f)Nrbr  r  r   rV  zinvalid dataz#max gzipped payload length exceeded)r  r  r  r   readOSErrorr  r&  )r}   
max_decoder  decodeds       r   gzip_decoder    s    
 4!!	D'$-	8C	-A~((*((:>2 
9 Q3w<*4>??N	  	-^,,	- 
9	8s.   B!BB!	BB!BB!!
B/c                        \ rS rSrS rS rSrg)GzipDecodedResponsei)  c                     [         (       d  [        e[        UR                  5       5      U l        [         R
                  R                  U SU R                  S9  g )Nr  r  )r  r  r   r  ior  r!   )r&   responses     r   r!   GzipDecodedResponse.__init__-  s>     t%%(--/*t$@r   c                      [         R                  R                  U 5        U R                  R                  5         g ! U R                  R                  5         f = fr    )r  r  r   r  r-   s    r   r   GzipDecodedResponse.close5  s4    	MM%GGMMODGGMMOs	   < A)r  N)r   r   r   r   r!   r   r   r   r   r   r  r  )  s    Ar   r  c                   &    \ rS rSrS rS rS rSrg)_Methodi?  c                     Xl         X l        g r    _Method__send_Method__name)r&   sendrO  s      r   r!   _Method.__init__B  s    r   c                 P    [        U R                  U R                  < SU< 35      $ ry  )r  r  r  r{  s     r   r|  _Method.__getattr__E  s    t{{t{{D$ABBr   c                 :    U R                  U R                  U5      $ r    r  r  s     r   r  _Method.__call__G  s    {{4;;--r   )r  __sendNr  r   r   r   r  r  ?  s    C.r   r  c                   |    \ rS rSrS\-  rSrSrSSS.S jjrSS jr	SS	 jr
S
 rS rS rS rS rS rS rS rSrg)	TransportiP  zPython-xmlrpc/%sTNr   )r%   c                X    Xl         X l        SU l        [        U5      U l        / U l        g N)NN)r  _use_builtin_types_connectionr  _headers_extra_headers)r&   r  r  r%   s       r   r!   Transport.__init__^  s)    )"3'W r   c                 F   S H  n U R                  XX45      s  $    g ! [        R                  R                   a    U(       a  e  MD  [         aP  nU(       d=  UR
                  [
        R                  [
        R                  [
        R                  4;  a  e  S nAM  S nAff = f)N)r   rV  )	single_requesthttpclientRemoteDisconnectedr  errno
ECONNRESETECONNABORTEDEPIPE)r&   hosthandlerrequest_bodyverboser   es          r   requestTransport.requestp  s    A**4,PP  ;;11   (8(8%:L:L(-(5 55s   &B 	B ABB c           	          U R                  XX45      nUR                  5       nUR                  S:X  a  X@l        U R	                  U5      $  UR                  SS5      (       a  UR                  5         [        X-   UR                  UR                  [        UR                  5       5      5      e! [
         a    e [         a    U R                  5         e f = f)N   zcontent-lengthrD   )send_requestgetresponsestatusr  parse_responser5   	Exceptionr   	getheaderr  r   reasonr  
getheaders)r&   r  r  r  r  	http_connresps          r   r  Transport.single_request}  s    	))$OI((*D{{c!&**400 " >>*B//IIKNKK"# 	  	 	 JJL		s   AB. .&Cc                 >    [        U R                  U R                  S9$ r  )r  r  r  r-   s    r   r  Transport.getparser  s"    d&8&8+/+B+BD 	Dr   c                 l   0 n[        U[        5      (       a  Uu  p[        R                  R	                  U5      u  p1U(       al  [        R                  R                  U5      n[        R                  " U5      R                  S5      nSR                  UR                  5       5      nSSU-   4/nO/ nXU4$ )Nr
  rD   AuthorizationzBasic )rK   rL   urllibparse
_splituserunquote_to_bytesr   r   r~   r   r%  )r&   r  x509authextra_headerss        r   get_host_infoTransport.get_host_info  s    dE""JD\\,,T2
<<006D%%d+227;D774::<(D (T/2M MD((r   c                    U R                   (       a!  XR                   S   :X  a  U R                   S   $ U R                  U5      u  o l        nU[        R                  R                  U5      4U l         U R                   S   $ )Nr   rV  )r  r  r  r  r  HTTPConnectionr&   r  chostr
  s       r   make_connectionTransport.make_connection  ss     (8(8(; ;##A&&+/+=+=d+C("D!;!;E!BB""r   c                 ^    U R                   u  pU(       a  SU l         UR                  5         g g r  )r  r   )r&   r  
connections      r   r   Transport.close  s,    +++D r   c                    U R                  U5      nU R                  U R                  -   nU(       a  UR                  S5        U R                  (       a.  [
        (       a#  UR                  SUSS9  UR                  S5        OUR                  SU5        UR                  S5        UR                  SU R                  45        U R                  XV5        U R                  XS5        U$ )NrV  POSTT)skip_accept_encoding)zAccept-Encodingr  )zContent-Typeztext/xmlz
User-Agent)r  r  r  set_debuglevelaccept_gzip_encodingr  
putrequestr   
user_agentsend_headerssend_content)r&   r  r  r  debugr  r%   s          r   r  Transport.send_request  s    ))$/
--$"5"55%%a($$!!&'!MNN67!!&'234doo67*.*3r   c                 <    U H  u  p4UR                  X45        M     g r    )	putheader)r&   r  r%   keyvals        r   r  Transport.send_headers  s    HC  *  r   c                 
   U R                   bA  U R                   [        U5      :  a(  [        (       a  UR                  SS5        [	        U5      nUR                  S[        [        U5      5      5        UR                  U5        g )NContent-Encodingr  zContent-Length)encode_thresholdr&  r  r$  r  rT   
endheaders)r&   r  r  s      r   r   Transport.send_content  sj    !!-!!C$55D  !3V<&|4L-s3|3D/EFl+r   c                    [        US5      (       a%  UR                  SS5      S:X  a  [        U5      nOUnOUnU R                  5       u  p4UR	                  S5      =n(       aQ  U R
                  (       a  [        S[        U5      5        UR                  U5        UR	                  S5      =n(       a  MQ  X!La  UR                  5         UR                  5         UR                  5       $ )Nr  r)  rD   r  i   zbody:)
rX   r  r  r  r  r  printr   r   r   )r&   r  streamr  r  r}   s         r   r  Transport.parse_response  s     8[))!!"4b9VC,X6!F~~kk$''d'||gtDz*FF4L kk$''d'
 !LLN		wwyr   )r  r  r  r  r  r  rp  )F)r   r   r   r   __version__r  r  r*  r!   r  r  r  r  r  r   r  r  r   r  r   r   r   r   r  r  P  s_     $k1J  
 !!$BD)4#.+	,"r   r  c                   <   ^  \ rS rSrSSSS.U 4S jjjrS rSrU =r$ )	SafeTransporti2  r   Nr%   contextc                0   > [         TU ]  UUUS9  X@l        g )Nr  r  r%   )superr!   r5  )r&   r  r  r%   r5  r,   s        r   r!   SafeTransport.__init__5  s$    l+<!( 	 	* r   c                    U R                   (       a!  XR                   S   :X  a  U R                   S   $ [        [        R                  S5      (       d  [	        S5      eU R                  U5      u  o l        nU[        R                  R                  " US 4SU R                  0U=(       d    0 D64U l         U R                   S   $ )Nr   rV  HTTPSConnectionz1your version of http.client doesn't support HTTPSr5  )	r  rX   r  r  r  r  r  r;  r5  r  s       r   r  SafeTransport.make_connection>  s    (8(8(; ;##A&&t{{$566%?A A ,0+=+=d+C("D!<!<U"8,,"8+/:2"8 8""r   )r  r  r5  rp  )r   r   r   r   r!   r  r   __classcell__)r,   s   @r   r3  r3  2  s!     # #r   r3  c                   V    \ rS rSr  SSSS.S jjrS rS rS rS	 rS
 r	S r
S rSrg)ServerProxyi]  Nr   r4  c                   [         R                  R                  U5      n
U
R                  S;  a  [	        S5      eU
R
                  U l        [         R                  R                  SS/U
SS  Q5      U l        U R                  (       d  SU l        Uc/  U
R                  S:X  a  [        nSU	0nO[        n0 nU" S
UUUS.UD6nX l        U=(       d    S	U l        X@l        XPl        g )N)r  httpszunsupported XML-RPC protocolrD   r   z/RPC2rA  r5  r7  r
  r   )r  r  urlsplitschemer  netloc_ServerProxy__host
urlunsplit_ServerProxy__handlerr3  r  _ServerProxy__transport_ServerProxy__encoding_ServerProxy__verbose_ServerProxy__allow_none)r&   uri	transportr   r  r   r  r  r%   r5  r  r  extra_kwargss                r   r!   ServerProxy.__init__s  s     LL!!#&88,,899hh00"b1A1QR51AB~~$DNxx7"' )73#! 0\2C(/0 #/0I %"-g &r   c                 8    U R                   R                  5         g r    )rH  r   r-   s    r   __closeServerProxy.__close  s     r   c                    [        X!U R                  U R                  S9R                  U R                  S5      nU R                  R                  U R                  U R                  UU R                  S9n[        U5      S:X  a  US   nU$ )N)r   r   xmlcharrefreplace)r  rV  r   )
r   rI  rK  r   rH  r  rE  rG  rJ  r&  )r&   r  re  r  r  s        r   	__requestServerProxy.__request  s     T__#'#4#466<fT__Na6b 	 ##++KKNNNN	 ,  x=A{Hr   c                 n    SU R                   R                  < SU R                  < U R                  < S3$ )Nr	   r)   r
   )r,   r   rE  rG  r-   s    r   r.   ServerProxy.__repr__  s(     ^^$$dkk4>>C	r   c                 .    [        U R                  U5      $ r    )r  _ServerProxy__requestr{  s     r   r|  ServerProxy.__getattr__  s    t~~t,,r   c                 j    US:X  a  U R                   $ US:X  a  U R                  $ [        SU< S35      e)Nr   rM  z
Attribute z
 not found)_ServerProxy__closerH  r   )r&   attrs     r   r  ServerProxy.__call__  s7     7?<<[ ###?@@r   c                     U $ r    r   r-   s    r   	__enter__ServerProxy.__enter__  s    r   c                 $    U R                  5         g r    )r]  r  s     r   __exit__ServerProxy.__exit__  s    r   )__allow_none
__encoding	__handler__host__transport	__verbose)NNFFFF)r   r   r   r   r!   r]  rZ  r.   r|  r  ra  rd  r   r   r   r   r?  r?  ]  s?    , DIIN''>!$-Ar   r?  __main__zhttp://localhost:8000ERROR	   rV  rp  )NNNF)i  @)Sr   sysrM   r   decimalr   http.clientr  urllib.parser  xml.parsersr   r  r  r   r  ImportErrorr   version_infor1  r   r   PARSE_ERRORSERVER_ERRORAPPLICATION_ERRORSYSTEM_ERRORTRANSPORT_ERRORNOT_WELLFORMED_ERRORUNSUPPORTED_ENCODINGINVALID_ENCODING_CHARINVALID_XMLRPCMETHOD_NOT_FOUNDINVALID_METHOD_PARAMSINTERNAL_ERRORr  r   r   r2   r5   r  r:  BooleanrH   rP   rR   r   r   r   r   r   r   r   r  rr  r  r  r  r  r  r  r   r  r  r  r  r   r  r  r  r3  r?  Serverr   r  r.  currentTimegetCurrentTimer   multigetDatapowaddr  r   r   r   <module>r     s  F  
        # ((!,, 	        I E &	E 	BE B  '@	5P3 P3d6!) !)F f
$ $B`4 `4N}, },D	5 	5D D  R  RJ 26 5 5.N BF@V(,
044$--V ,	. 	."] ]D#I #Ve eR 

 z
 01Ff  //12 fE	MMO	IIaN	IIaNH(O  # y)  DJ*  gq  gqsA   G& 1 G5 H &G21G25H;	H		HH*	H%%H*