
    qh                     N   S r SSKJrJr  SSKrSSKJrJrJrJ	r	  \	(       a!  Sr
SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  OSr
SSKJr  SSKrSrSS
KJr  SSKJr   SSKrSrSS jr " S S\(       a  \R6                  O\5      r " S S\5      rS rS r g! \ a    Sr NAf = f)z*Defused xmlrpclib

Also defuses gzip bomb
    )print_functionabsolute_importN   )DTDForbiddenEntitiesForbiddenExternalReferenceForbiddenPY3zxmlrpc.client)ExpatParser)client)server)gzip_decode)GzipDecodedResponse	xmlrpclibi  c                    [         (       d  [        eUc  [        n[        R                  " U 5      n[         R
                  " SUS9n US:  a  UR                  5       nOUR                  US-   5      n UR                  5         UR                  5         US:  a  [        U5      U:  a  [        S5      eU$ ! [         a    [        S5      ef = f)zjgzip encoded data -> unencoded data

Decode data using the gzip content encoding as described in RFC 1952
rbmodefileobjr   r   zinvalid dataz#max gzipped payload length exceeded)gzipNotImplementedErrorMAX_DATAioBytesIOGzipFilereadIOError
ValueErrorcloselen)datalimitfgzfdecodeds        C/var/www/html/env/lib/python3.13/site-packages/defusedxml/xmlrpc.pydefused_gzip_decoder&   -   s    
 4!!}


4A
--T1
-C)19hhjGhhuqy)G GGIIIKzc'lU*>??N  )(()s   B5 B5 5Cc                   .    \ rS rSrSrSS jrS rS rSrg)	DefusedGzipDecodedResponseF   z`a file-like object to decode a response encoded with the gzip
method, as described in RFC 1952.
Nc                    [         (       d  [        eUb  UO[        =U l        nUS:  a  UR	                  5       nS U l        OUR	                  US-   5      nSU l        US:  a  [        U5      U:  a  [        S5      e[        R                  " U5      U l
        [         R                  R                  U SU R                  S9  g )Nr   r   max payload length exceededr   r   )r   r   r   r!   r   
readlengthr   r   r   r   stringior   __init__)selfresponser!   r    s       r%   r.   #DefusedGzipDecodedResponse.__init__K   s     t%%&+&7UXE
U19==?D"DO==+DDOA:#d)e+:;;

4(t$F    c                 v   U R                   S:  a  U R                   U R                  -
  n[        XS-   5      n[        R                  R                  X5      nU =R                  [        U5      -  sl        U R                  U R                   :  a  [        S5      eU$ [        R                  R                  X5      $ )Nr   r   r+   )r!   r,   minr   r   r   r   r   )r/   nleftr    s       r%   r   DefusedGzipDecodedResponse.read\   s    ::?::/DAax A==%%d.DOOs4y(O+ !>??K==%%d..r2   c                 v    [         R                  R                  U 5        U R                  R                  5         g N)r   r   r   r-   )r/   s    r%   r    DefusedGzipDecodedResponse.closeh   s$    D!r2   )r!   r,   r-   r9   )	__name__
__module____qualname____firstlineno____doc__r.   r   r   __static_attributes__ r2   r%   r(   r(   F   s    G"
/r2   r(   c                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
DefusedExpatParserm   c                 \   [         R                  " X5        X l        X0l        X@l        U R
                  nU R                  (       a  U R                  Ul        U R                  (       a"  U R                  Ul	        U R                  Ul        U R                  (       a  U R                  Ul        g g r9   )r
   r.   
forbid_dtdforbid_entitiesforbid_external_parserdefused_start_doctype_declStartDoctypeDeclHandlerdefused_entity_declEntityDeclHandlerdefused_unparsed_entity_declUnparsedEntityDeclHandler#defused_external_entity_ref_handlerExternalEntityRefHandler)r/   targetrF   rG   rH   parsers         r%   r.   DefusedExpatParser.__init__n   s    T*$..??-1-L-LF*'+'?'?F$/3/P/PF,.2.V.VF+  r2   c                     [        XU5      er9   )r   )r/   namesysidpubidhas_internal_subsets        r%   rJ   -DefusedExpatParser.defused_start_doctype_decl|   s    4..r2   c                     [        XXEXg5      er9   r   )r/   rV   is_parameter_entityvaluebaserW   rX   notation_names           r%   rL   &DefusedExpatParser.defused_entity_decl   s      T%OOr2   c                     [        US X#XE5      er9   r\   )r/   rV   r_   rW   rX   r`   s         r%   rN   /DefusedExpatParser.defused_unparsed_entity_decl   s    dDNNr2   c                     [        XX45      er9   )r   )r/   contextr_   rW   rX   s        r%   rP   6DefusedExpatParser.defused_external_entity_ref_handler   s    (EEr2   )rF   rG   rH   N)FTT)
r;   r<   r=   r>   r.   rJ   rL   rN   rP   r@   rA   r2   r%   rC   rC   m   s    W/P
OFr2   rC   c                      [         [        l        [        [        l        [
        [        l        [        (       a  [
        [        l        g g r9   )rC   xmlrpc_client
FastParserr(   r   r&   r   xmlrpc_serverrA   r2   r%   monkey_patchrk      s,    1M(BM% 3M}$7! r2   c                      S [         l        [        [         l        [        [         l        [        (       a  [        [        l        g g r9   )rh   ri   _OrigGzipDecodedResponser   _orig_gzip_decoder   rj   rA   r2   r%   unmonkey_patchro      s,    #M(@M% 1M}$5! r2   r9   )!r?   
__future__r   r   r   commonr   r   r   r	   
__origin__xmlrpc.clientr
   xmlrpcr   rh   r   rj   r   rn   r   rm   r   r   ImportErrorr   r&   r   objectr(   rC   rk   ro   rA   r2   r%   <module>rw      s    7 	 T T J)..>MJ%%M:I 2$$F $NF F>86e  Ds   B B$#B$