+
     Bi                     v   ^ RI HtHtHtHtHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt ^ RItR&R ltR t ! R	 R
4      t ! R R]4      t ! R R]P4                  ]4      t ! R R]4      t ! R R]4      t ! R R]P<                  4      t ! R R4      t  ! R R]4      t! ! R R]] 4      t" ! R R]] 4      t#]$R8X  d   ^ RI%t% ! R R4      t&]! R'4      ;_uu_ 4       t']'PQ                  ])4       ]'PQ                  R  R!4       ]'PU                  ]&! 4       RR"7       ]'PW                  4        ],! R#4       ],! R$4        ]'P[                  4        RRR4       R# R#   ] d    Rt EL6i ; i  ]. d    ],! R%4       ]P^                  ! ^ 4        L?i ; i  + '       g   i     R# ; i)(    )Faultdumpsloadsgzip_encodegzip_decode)BaseHTTPRequestHandler)partial)	signatureNTc                     V'       d   VP                  R 4      pMV.pV F7  pVP                  R4      '       d   \        RV,          4      h\        W4      p K9  	  V # )._z(attempt to access private attribute "%s")split
startswithAttributeErrorgetattr)objattrallow_dotted_namesattrsis   &&&  $/usr/lib/python3.14/xmlrpc/server.pyresolve_dotted_attributer   |   s[     

3<< :Q>  #.C  J    c           	          \        V 4       Uu. uF:  pVP                  R 4      '       d   K  \        \        W4      4      '       g   K8  VNK<  	  up# u upi )r   )dirr   callabler   )r   members   & r   list_public_methodsr      sM     "%S 4v((- WS12 F 4 4 4s   AAAc                   r   a  ] tR t^t o RR ltRR ltRR ltR tR tRR lt	R t
R	 tR
 tR tR tRtV tR# )SimpleXMLRPCDispatcherNc                \    / V n         R V n        Wn        T;'       g    RV n        W0n        R # )Nutf-8)funcsinstance
allow_noneencodinguse_builtin_typesselfr%   r&   r'   s   &&&&r   __init__SimpleXMLRPCDispatcher.__init__   s*    
$ ++G!2r   c                    Wn         W n        R # N)r$   r   )r)   r$   r   s   &&&r   register_instance(SimpleXMLRPCDispatcher.register_instance   s    B !"4r   c                x    Vf   \        V P                  VR7      # Vf   VP                  pWP                  V&   V# )N)name)r	   register_function__name__r#   )r)   functionr1   s   &&&r   r2   (SimpleXMLRPCDispatcher.register_function   s>     411==<$$D#

4r   c                    V P                   P                  R V P                  RV P                  RV P                  /4       R# )zsystem.listMethodszsystem.methodSignaturezsystem.methodHelpN)r#   updatesystem_listMethodssystem_methodSignaturesystem_methodHelpr)   s   &r    register_introspection_functions7SimpleXMLRPCDispatcher.register_introspection_functions   s>     	

/$2I2I.1L1L)D,B,BD 	Er   c                8    V P                   V P                  R &   R# )zsystem.multicallN)system_multicallr#   r;   s   &r   register_multicall_functions3SimpleXMLRPCDispatcher.register_multicall_functions   s     *.)>)>

%&r   c           	         \        WP                  R 7      w  rEVe
   V! WT4      pMV P                  WT4      pV3p\        V^V P                  V P
                  R7      pVP                  V P
                  R4      #   \         d,   p\        YpP                  T P
                  R7      p Rp?LMRp?i\         dG   p\        \        ^\        T4      : RT: 24      T P
                  T P                  R7      p Rp?LRp?ii ; i))r'   N)methodresponser%   r&   )r%   r&   :r&   r%   xmlcharrefreplace)
r   r'   	_dispatchr   r%   r&   r   BaseExceptiontypeencode)	r)   datadispatch_methodpathparamsmethodresponsefaultexcs	   &&&&     r   _marshaled_dispatch*SimpleXMLRPCDispatcher._marshaled_dispatch   s    	"4;Q;QRNF **6:>>&9 {HXa(,$--QH t}}.ABB  	5U&*mm5H 	aDIs344??H	s*   AA: :C?!B++C?8C?9<C::C?c                   \        V P                  P                  4       4      pV P                  e   \	        V P                  R4      '       d,   V\        V P                  P                  4       4      ,          pMA\	        V P                  R4      '       g&   V\        \        V P                  4      4      ,          p\        V4      # )N_listMethodsrG   )setr#   keysr$   hasattrrV   r   sorted)r)   methodss   & r   r8   )SimpleXMLRPCDispatcher.system_listMethods  s    
 djjoo'(==$ t}}n553t}}99;<< T]]K88324==ABBgr   c                    R # )zsignatures not supported )r)   method_names   &&r   r9   -SimpleXMLRPCDispatcher.system_methodSignature)  s     *r   c                   R pWP                   9   d   V P                   V,          pMV P                  ev   \        V P                  R4      '       d   V P                  P                  V4      # \        V P                  R4      '       g#    \	        V P                  VV P
                  4      pVf   R# \        P                  ! V4      #   \         d     L)i ; i)N_methodHelprG    )	r#   r$   rY   rb   r   r   r   pydocgetdoc)r)   r_   rO   s   && r   r:   (SimpleXMLRPCDispatcher.system_methodHelp6  s    
 **$ZZ,F]]&t}}m44}}00== T]]K885 $ + $ 7 7"F ><<'' & s   	!C CCc           
     z   . pV F7  pVR ,          pVR,          p VP                  V P                  WE4      .4       K9  	  V#   \         d5   pTP                  RTP                  RTP                  /4        Rp?Kw  Rp?i\
         d1   pTP                  R^R\        T4      : RT: 2/4        Rp?K  Rp?ii ; i)
methodNamerN   	faultCodefaultStringNrD   )appendrG   r   ri   rj   rH   rI   )r)   	call_listresultscallr_   rN   rQ   rR   s   &&      r   r?   'SimpleXMLRPCDispatcher.system_multicallU  s     D|,K(^F { CDE $    5??"U%6%68  !  1"S	3%?A s)   !AB:)A<<B:	B:
%B55B:c                    V P                   V,          pVe   V! V!  # \        RV,          4      h  \         d     Mi ; iT P                  ev   \	        T P                  R4      '       d   T P                  P                  Y4      #  \        T P                  TT P                  4      pTe   T! T!  # M  \         d     Mi ; i\        RT,          4      h)Nzmethod "%s" is not supportedrG   )	r#   	ExceptionKeyErrorr$   rY   rG   r   r   r   )r)   rO   rN   funcs   &&& r   rG    SimpleXMLRPCDispatcher._dispatcht  s    *	E::f%D V}$:VCDD  		 ==$t}}k22}}..v>>
)/MM++ #=( $ "  6?@@s   1 ??!B4 4CC)r   r%   r&   r#   r$   r'   FNF)FNN)r3   
__module____qualname____firstlineno__r*   r.   r2   r<   r@   rS   r8   r9   r:   r?   rG   __static_attributes____classdictcell____classdict__s   @r   r    r       sG     3"5H 	E?!CF$*(>>1A 1Ar   r    c                      a  ] tR tRt o RtRtRtRt]P                  ! R]P                  ]P                  ,          4      tR tR tR tR tR	 tRR
 ltRtV tR# )SimpleXMLRPCRequestHandleri  ix  Tz
                            \s* ([^\s;]+) \s*            #content-coding
                            (;\s* q \s*=\s* ([0-9\.]+))? #q
                            c                .   / pV P                   P                  R R4      pVP                  R4       Fa  pV P                  P	                  V4      pV'       g   K(  VP                  ^4      pV'       d   \        V4      MRpWQVP                  ^4      &   Kc  	  V# )zAccept-Encodingrc   ,g      ?)headersgetr   	aepatternmatchgroupfloat)r)   raeer   vs   &     r   accept_encodings+SimpleXMLRPCRequestHandler.accept_encodings  sz    \\/4#ANN((+EuKKN !E!Hs$%%++a.!  r   c                \    V P                   '       d   V P                  V P                   9   # R # T)	rpc_pathsrM   r;   s   &r   is_rpc_path_valid,SimpleXMLRPCRequestHandler.is_rpc_path_valid  s#    >>>99.. r   c                   V P                  4       '       g   V P                  4        R #  Rp\        V P                  R,          4      p. pV'       d\   \	        W!4      pV P
                  P                  V4      pV'       g   M,VP                  V4       V\        VR,          4      ,          pKc  RP                  V4      pV P                  V4      pVf   R # V P                  P                  V\        V RR 4      V P                  4      pV P                  ^4       V P!                  RR4       V P"                  ea   \        V4      V P"                  8  dG   V P%                  4       P'                  R^ 4      pV'       d    \)        V4      pV P!                  RR4       V P!                  R\-        \        V4      4      4       V P/                  4        V P0                  P3                  V4       R #   \*         d     L^i ; i  \4         d   p	T P                  R	4       \7        T P                  R
4      '       d{   T P                  P8                  '       d_   T P!                  R\-        T	4      4       \:        P<                  ! 4       p
\-        T
P?                  RR4      R4      p
T P!                  RT
4       T P!                  RR4       T P/                  4         R p	?	R # R p	?	ii ; i)Nzcontent-lengthr   rG   Content-typeztext/xmlgzipzContent-EncodingContent-lengthi  _send_traceback_headerzX-exceptionASCIIbackslashreplacezX-traceback0i   ) r   
report_404intr   minrfilereadrk   lenjoindecode_request_contentserverrS   r   rM   send_responsesend_headerencode_thresholdr   r   r   NotImplementedErrorstrend_headerswfilewriterq   rY   r   	traceback
format_excrJ   )r)   max_chunk_sizesize_remainingL
chunk_sizechunkrK   rP   qr   traces   &          r   do_POST"SimpleXMLRPCRequestHandler.do_POST  sM    %%''OO9	'
 *N .>!?@NA  @



3#ae*,88A;D..t4D| {{66'$T:DIIH$ s#^Z8$$0x=4#8#88--/33FA>A!'28'<H ,,-?H -s3x=/ABJJX&	  3 ! !1  	s# t{{$<==KK666  A7!,,.ELL2DEwO  6-s3	s>   'G: BG: 2G: ;G) )G76G7:KAKB KKc                   V P                   P                  R R4      P                  4       pVR8X  d   V# VR8X  d    \        V4      # V P                  RRV,          4       V P                  RR4       V P                  4        R	#   \         d    T P                  RRT,          4        LJ\         d    T P                  RR4        Lhi ; i)
zcontent-encodingidentityr   i  zencoding %r not supported  zerror decoding gzip contentr   r   N)	r   r   lowerr   r   r   
ValueErrorr   r   )r)   rK   r&   s   && r   r   1SimpleXMLRPCRequestHandler.decode_request_content  s    <<##$6
CIIKz!KvG"4(( s$?($JK)3/ ' P""3(Ch(NO G""3(EFGs   
B $C	*C	3C	C	c                    V P                  R 4       RpV P                  RR4       V P                  R\        \        V4      4      4       V P	                  4        V P
                  P                  V4       R# )i  s   No such pager   z
text/plainr   N)r   r   r   r   r   r   r   r)   rP   s   & r   r   %SimpleXMLRPCRequestHandler.report_404*  s]    3"6)3s8}+=>

"r   c                p    V P                   P                  '       d   \        P                  ! WV4       R # R # r-   )r   logRequestsr   log_request)r)   codesizes   &&&r   r   &SimpleXMLRPCRequestHandler.log_request3  s)     ;;""""..t4@ #r   r^   N)/z/RPC2
/pydoc.cssr   )-r   )r3   rw   rx   ry   r   r   wbufsizedisable_nagle_algorithmrecompileVERBOSE
IGNORECASEr   r   r   r   r   r   r   rz   r{   r|   s   @r   r   r     so      -I  H" 

   "$bmm!;=I
	E'N"#A Ar   r   c                   B   a  ] tR tRt o RtRtRt]RRRRR3R ltRt	V t
R# )SimpleXMLRPCServeri9  TFNc                ~    W0n         \        P                  WWW4       \        P                  P                  WW&4       R # r-   )r   r    r*   socketserver	TCPServerr)   addrrequestHandlerr   r%   r&   bind_and_activater'   s   &&&&&&&&r   r*   SimpleXMLRPCServer.__init__M  s0     '''(V''NVr   )r   )r3   rw   rx   ry   allow_reuse_addressallow_reuse_portr   r   r*   rz   r{   r|   s   @r   r   r   9  s6       #,F!ed#'5W Wr   r   c                   L   a  ] tR tRt o ]RRRRR3R ltR tR tR
R ltR	t	V t
R# )MultiPathXMLRPCServeriV  TFNc           
     t    \         P                  WW#VWVV4       / V n        W@n        T;'       g    R V n        R# )r"   N)r   r*   dispatchersr%   r&   r   s   &&&&&&&&r   r*   MultiPathXMLRPCServer.__init__^  s;     	##DZ$,AR	T$ ++Gr   c                "    W P                   V&   V# r-   r   )r)   rM   
dispatchers   &&&r   add_dispatcher$MultiPathXMLRPCServer.add_dispatcherh  s    !+r   c                (    V P                   V,          # r-   r   )r)   rM   s   &&r   get_dispatcher$MultiPathXMLRPCServer.get_dispatcherl  s    %%r   c           	     0    V P                   V,          P                  WV4      pV#   \         dd   p\        \	        ^\        T4      : RT: 24      T P                  T P                  R7      pTP                  T P                  R4      p Rp?T# Rp?ii ; i)   rD   rE   rF   N)	r   rS   rH   r   r   rI   r&   r%   rJ   )r)   rK   rL   rM   rP   rR   s   &&&&  r   rS   )MultiPathXMLRPCServer._marshaled_dispatcho  s    
	K''-AAd,H   	K aDIs344??DH  t}}6IJH	Ks   #' BABB)r%   r   r&   rv   )r3   rw   rx   ry   r   r*   r   r   rS   rz   r{   r|   s   @r   r   r   V  s0      -G!ed#'5,& r   r   c                   @   a  ] tR tRt o RR ltR tR tR	R ltRtV t	R# )
CGIXMLRPCRequestHandleri}  Nc                2    \         P                  WW#4       R # r-   )r    r*   r(   s   &&&&r   r*    CGIXMLRPCRequestHandler.__init__  s    ''(Vr   c                f   V P                  V4      p\        R 4       \        R\        V4      ,          4       \        4        \        P                  P                  4        \        P                  P                  P                  V4       \        P                  P                  P                  4        R# )zContent-Type: text/xmlContent-Length: %dN)rS   printr   sysstdoutflushbufferr   )r)   request_textrP   s   && r   handle_xmlrpc%CGIXMLRPCRequestHandler.handle_xmlrpc  sr     ++L9&'"S]23



)

!r   c                N   R p\         P                  V,          w  r#\        P                  P                  RVRVRV/,          pVP                  R4      p\        RW3,          4       \        R\        P                  P                  ,          4       \        R\        V4      ,          4       \        4        \        P                  P                  4        \        P                  P                  P                  V4       \        P                  P                  P                  4        R# )	r   r   messageexplainr"   zStatus: %d %szContent-Type: %sr   N)r   	responseshttpr   DEFAULT_ERROR_MESSAGErJ   r   DEFAULT_ERROR_CONTENT_TYPEr   r   r   r   r   r   )r)   r   r   r   rP   s   &    r   
handle_get"CGIXMLRPCRequestHandler.handle_get  s     1;;DA;;44d ??7+o/0 4;;#I#IIJ"S]23



)

!r   c                j   Vf8   \         P                  P                  RR 4      R8X  d   V P                  4        R #  \	        \         P                  P                  RR 4      4      pVf    \        P                  P                  V4      pV P                  V4       R #   \
        \        3 d    Rp LKi ; i)NREQUEST_METHODGETCONTENT_LENGTHr   )osenvironr   r  r   r   	TypeErrorr   stdinr   r   )r)   r   lengths   && r   handle_request&CGIXMLRPCRequestHandler.handle_request  s     JJNN+T2e;OORZZ^^,<dCD #"yy~~f5|, 	* s   )B B21B2r^   ru   r-   )
r3   rw   rx   ry   r*   r   r  r  rz   r{   r|   s   @r   r   r   }  s     W
""2- -r   r   c                   R   a  ] tR tRt o R/ / / 3R ltR/ / / R3R ltR tR tRtV t	R# )ServerHTMLDoci  Nc                   T;'       g    V P                   p. p^ p\        P                  ! R4      pVP                  W4      ;p	'       Edl   V	P	                  4       w  rVP                  V! WV
 4      4       V	P                  4       w  rrppV'       d4   V! V4      P                  RR4      pVP                  RV: RV: R24       MV'       d4   R\        V4      ,          pVP                  RV: RV! V4      : R24       MV'       d4   R\        V4      ,          pVP                  RV: RV! V4      : R24       MuWV^,            R	8X  d$   VP                  V P                  VWSV4      4       MBV'       d   VP                  R
V,          4       M!VP                  V P                  VV4      4       TpEK  VP                  V! WR 4      4       RP                  V4      # )r   zS\b((http|https|ftp)://\S+[\w/]|RFC[- ]?(\d+)|PEP[- ]?(\d+)|(self\.)?((?:\w|\.)+))\b"z&quot;z	<a href="z">z</a>z(https://www.rfc-editor.org/rfc/rfc%d.txtz!https://peps.python.org/pep-%04d/(zself.<strong>%s</strong>Nrc   )escaper   r   searchspanrk   groupsreplacer   namelinkr   )r)   textr  r#   classesr[   rm   herepatternr   startendallschemerfcpepselfdotr1   urls   &&&&&&             r   markupServerHTMLDoc.markup  su    &&4;; ** < = ~~d11e1JENN6$E"23438<<>0C7DSk))#x8SAB@3s8KVC[IJ9CHDVC[IJ#a%C't}}T77KL9D@At}}T7;<Dvd5k*+wwwr   c                ~   T;'       d    VP                   ;'       g    R R,           V,           pR p	RV P                  V4      : RV P                  V4      : R2p
\        V4      '       d   \        \	        V4      4      pMRp\        V\        4      '       d(   V^ ,          ;'       g    TpV^,          ;'       g    R pM\        P                  ! V4      pW,           T	;'       d    V P                  RV	,          4      ,           pV P                  WP                  WEV4      pT;'       d
    RV,          pRV: R	V: R
2# )rc   r   z	<a name="z
"><strong>z</strong></a>z(...)z'<font face="helvetica, arial">%s</font>z<dd><tt>%s</tt></dd>z<dl><dt>z</dt>z</dl>
)r3   r  r   r   r
   
isinstancetuplerd   re   greyr%  	preformat)r)   objectr1   modr#   r  r[   clanchornotetitleargspec	docstringdecldocs   &&&&&&&&       r   
docroutineServerHTMLDoc.docroutine  s    $$**c1D8 KKT!24 F)F+,GGfe$$Qi**7Gq	RIV,I$ #A #A49984?,A B kk~~uw@22,s2-1377r   c           	        / pVP                  4        F  w  rVR V,           WE&   WE,          WF&   K  	  V P                  V4      pRV,          pV P                  V4      pV P                  W P                  V4      p	T	;'       d
    RV	,          p	VRV	,          ,           p. p
\        VP                  4       4      pV F'  w  rVV
P                  V P                  WeVR7      4       K)  	  WP                  RRRP                  V
4      4      ,           pV# )z#-z)<big><big><strong>%s</strong></big></big>z<tt>%s</tt>z
<p>%s</p>
)r#   Methods	functionsrc   )
itemsr  headingr%  r+  rZ   rk   r6  
bigsectionr   )r)   server_namepackage_documentationr[   fdictkeyvalueheadresultr5  contentsmethod_itemss   &&&&        r   	docserverServerHTMLDoc.docserver	  s     !--/JCEJ :EL * kk+.:[Hd#kk/G))mc)-#--gmmo.&JCOODOOEeODE '//{BGGH$57 7 r   c                6    R pRV,          pRV: RV: RV: R2# )r   z1<link rel="stylesheet" type="text/css" href="%s">zI<!DOCTYPE>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Python: z	</title>
z</head><body>z</body></html>r^   )r)   r1  rE  css_pathcss_links   &&&  r   pageServerHTMLDoc.page#  s,    ? 	 ',XxA 	Ar   r^   )
r3   rw   rx   ry   r%  r6  rG  rL  rz   r{   r|   s   @r   r  r    s:      #'b"b % N ,0R8:4A Ar   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	XMLRPCDocGeneratori1  c                0    R V n         RV n        R V n        R# )zXML-RPC Server DocumentationzGThis server exports the following methods through the XML-RPC protocol.N)r>  server_documentationserver_titler;   s   &r   r*   XMLRPCDocGenerator.__init__8  s!    9 	! ;r   c                    Wn         R # r-   )rR  )r)   rR  s   &&r   set_server_title#XMLRPCDocGenerator.set_server_title@  s
     )r   c                    Wn         R # r-   )r>  )r)   r>  s   &&r   set_server_name"XMLRPCDocGenerator.set_server_nameE  s
     'r   c                    Wn         R # r-   )rQ  )r)   rQ  s   &&r   set_server_documentation+XMLRPCDocGenerator.set_server_documentationJ  s
     %9!r   c                   / pV P                  4        F  pW P                  9   d   V P                  V,          pMV P                  e   R R .p\        V P                  R4      '       d   V P                  P	                  V4      V^ &   \        V P                  R4      '       d   V P                  P                  V4      V^&   \        V4      pVR8w  d   TpM7\        V P                  R4      '       g    \        V P                  V4      pMTp XW&   K  	  \        4       pVP                  V P                  V P                  V4      pVP                  \        P                  ! V P                   4      V4      #   \         d    Tp Lxi ; i)N_get_method_argstringrb   rG   rv   )r8   r#   r$   rY   r^  rb   r)  r   r   r  rG  r>  rQ  rL  htmlr  rR  )r)   r[   r_   rO   method_info
documenterdocumentations   &      r   generate_html_documentation.XMLRPCDocGenerator.generate_html_documentationO  sR    224Kjj(K0*#Tl4==*ABB%)]]%H%H%UKN4==-88%)]]%>%>{%KKN#K0,.(F <<-!9$(MM$/"& )F
 $*G 7 5: #_
",, $ 0 0 $ 9 9 ' t{{4+<+<=}MM# * -!,-s   2E55FF)rQ  r>  rR  N)r3   rw   rx   ry   r*   rU  rX  r[  rc  rz   r{   r|   s   @r   rO  rO  1  s%     ;)
'
9
1N 1Nr   rO  c                   ,   a  ] tR tRt o R tR tRtV tR# )DocXMLRPCRequestHandleri  c                N   \         P                  P                  \         P                  P                  \        4      4      p\         P                  P                  VR RR4      p\        VRR7      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i)z..
pydoc_dataz
_pydoc.cssrb)modeN)r  rM   dirnamerealpath__file__r   openr   )r)   r$  	path_hererJ  fps   &&   r   _get_css DocXMLRPCRequestHandler._get_css  sb    GGOOBGG$4$4X$>?	77<<	4|L(&&"779 '&&&s   8BB$	c                   V P                  4       '       g   V P                  4        R # V P                  P                  R4      '       d   RpV P	                  V P                  4      pM+RpV P
                  P                  4       P                  R4      pV P                  ^4       V P                  RRV,          4       V P                  R\        \        V4      4      4       V P                  4        V P                  P                  V4       R # )Nz.cssztext/cssz	text/htmlr"   zContent-Typez%s; charset=UTF-8r   )r   r   rM   endswithrq  r   rc  rJ   r   r   r   r   r   r   r   )r)   content_typerP   s   &  r   do_GETDocXMLRPCRequestHandler.do_GET  s     %%''OO99f%%%L}}TYY/H&L{{>>@GGPH3)<|)KL)3s8}+=>

"r   r^   N)r3   rw   rx   ry   rq  rv  rz   r{   r|   s   @r   rf  rf    s     # #r   rf  c                   6   a  ] tR tRt o ]RRRRR3R ltRtV tR# )DocXMLRPCServeri  TFNc           
     b    \         P                  WW#WEVV4       \        P                  V 4       R # r-   )r   r*   rO  r   s   &&&&&&&&r   r*   DocXMLRPCServer.__init__  s/     	##D$.:K$5	7 	##D)r   r^   )r3   rw   rx   ry   rf  r*   rz   r{   r|   s   @r   ry  ry    s!      -D!ed#'5* *r   ry  c                   ,   a  ] tR tRt o R tR tRtV tR# )DocCGIXMLRPCRequestHandleri  c                   V P                  4       P                  R 4      p\        R4       \        R\        V4      ,          4       \        4        \        P
                  P                  4        \        P
                  P                  P                  V4       \        P
                  P                  P                  4        R# )r"   zContent-Type: text/htmlr   N)	rc  rJ   r   r   r   r   r   r   r   r   s   & r   r  %DocCGIXMLRPCRequestHandler.handle_get  s{     335<<WE'("S]23



)

!r   c                Z    \         P                  V 4       \        P                  V 4       R # r-   )r   r*   rO  r;   s   &r   r*   #DocCGIXMLRPCRequestHandler.__init__  s    ((.##D)r   r^   N)r3   rw   rx   ry   r  r*   rz   r{   r|   s   @r   r}  r}    s     
" * *r   r}  __main__c                   :   a  ] tR tRt o R t ! R R4      tRtV tR# )ExampleServicei  c                    R # )42r^   r;   s   &r   getDataExampleService.getData  s    r   c                   0   a  ] tR tRt o ]R 4       tRtV tR# )ExampleService.currentTimei  c                 >    \         P                   P                  4       # r-   )datetimenowr^   r   r   getCurrentTime)ExampleService.currentTime.getCurrentTime  s    ((,,..r   r^   N)r3   rw   rx   ry   staticmethodr  rz   r{   r|   s   @r   currentTimer    s     / /r   r  r^   N)r3   rw   rx   ry   r  r  rz   r{   r|   s   @r   r  r    s     		/ 	/r   r  c                     W,           # r-   r^   )xys   &&r   <lambda>r    s    QSr   add)r   z&Serving XML-RPC on localhost port 8000zKIt is advisable to run this example server within a secure, closed network.z&
Keyboard interrupt received, exiting.r   )	localhosti@  )0xmlrpc.clientr   r   r   r   r   http.serverr   	functoolsr	   inspectr
   r_  r   r   r   r  r   rd   r   fcntlImportErrorr   r   r    r   r   r   r   r   HTMLDocr  rO  rf  ry  r}  r3   r  r  r   r2   powr.   r@   r   serve_foreverKeyboardInterruptexitr^   r   r   <module>r     s  V H G .      
 	 	  04IA IAVPA!7 PAdW///W:%. %N?-4 ?-JmAEMM mA^ON ONb&#8 &#P**** *$;$6*4 z/ / 
/	0	0F  %  %8  !1d K++-67[\	  " 
1	0 w  E` ! 	;<HHQK	 
1	0	0s=   E0 6AF'F 0	E=<E= !F$!F'#F$$F''F8	