PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  [c@sWdZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z ddl m Z ddlZdZdZdZdZd efd YZd fd YZd efdYZdefdYZdefdYZdZdfdYZdefdYZdZdS(s 2.5.65-8.el7iN(tListTypet TupleTypet StringTypet UnicodeTypetDictTypetDictionaryType(t UserDictCaseicCs*ytjtj|tSWntSXdS(s5 Returns true if n is IPv6 address, false otherwise. N(tsockett inet_ptontAF_INET6tTruetFalse(tn((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt check_ipv6$s c Cs8|jdd}d }d }d }d }t|dkr|d}|djdd}|d}t|dkr|d}qn |d}|ddkrtjdtd\}}|jdjd}nPt|r|}n;|jdd}|d}t|dkr(|d}n||||fS( s| Function used to split host information in an URL per RFC 2396 handle full hostname like user:passwd@host:port t@iiit:t[s(?<=\]):t]N(tsplittNonetlentretip_porttlstriptrstripR ( t hoststringtlthosttporttusertpasswdthostporttuserinfotarr((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt split_host,s,       cCsS|dkrtdn|jdd}t|dkrI|d}nt|S(NsHost string cannot be nulls://ii(Rt ValueErrorRRR"(tproxyR!((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_proxy_infoQs    tMalformedURIErrorcBseZRS((t__name__t __module__(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR&]stServerc Bs^eZdZejZejZejZ ej Z dddddddddd Z dddddZdZdZdZdZdd Zd Zd Zd Zd ZdZdZdZdZdZdZeZdZdddZ dZ!dZ"dZ#dZ$dZ%ddZ&dZ'dZ(RS(s7uri [,options] -> a logical connection to an XML-RPC server uri is the connection point on the server, given as scheme://host/target. The standard implementation always supports the "http" scheme. If SSL socket support is available (Python 2.0), it also supports "https". If the target part and the slash preceding it are both omitted, "/RPC2" is assumed. The following options can be given as keyword arguments: transport: a transport factory encoding: the request encoding (default is UTF-8) verbose: verbosity level proxy: use an HTTP proxy username: username for authenticated HTTP proxy password: password for authenticated HTTP proxy All 8-bit strings passed to the server proxy are assumed to use the given encoding. ic Cs|dkrt|\} } } }| dk rCd| | f}n| }| dk r|dkr| }|dk r|dkr|}qqn||_d|_d|_d|_||_||_||_| |_ t t j dkrt j d|_ n t |_ |j|dkrMd|_|j|j|||| }n d|_d|_d|_||_g|_d|_||_||_|j||j| d|_t|_dS(Ns%s:%sii(RR%t_urit_refreshCallbackt_progressCallbackt _bufferSizet_proxyt _usernamet _passwordt_timeoutRt __version__Rt rpc_versiont_reset_host_handler_and_typet_allow_redirecttdefault_transportt_typet _redirectedtuse_handler_patht _transportt_trusted_cert_filest_langt _encodingt_verbosetset_refresh_callbacktset_progress_callbackt send_handlerRt_headers(tselfturit transporttencodingtverboseR$tusernametpasswordtrefreshCallbacktprogressCallbackttimeouttphtpptputpw((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt__init__sJ                         cCs|rZ|dkr6|j|d|d|d|}q|j|d|d|d|}n3|dkr{|jd|}n|jd|}|S(Nthttpst proxyUsernamet proxyPasswordRL(t_transport_class_https_proxyt_transport_class_proxyt_transport_class_httpst_transport_class(RCttypeR$RHRIRLRE((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR6s    cCs ||_dS(N(R5(RCtallow((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytallow_redirectscCs|js dS|jS(N(R5RR8(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt redirecteds cCs||_|jj|dS(N(R+R:R?(RCRJ((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR?s cCs||_|jj|dS(N(R-R:tset_buffer_size(RCt bufferSize((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR]s i@cCs ||_|jj||dS(N(R,R:R@(RCRKR^((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR@s cCstj||d|jS(NRF(t xmlrpclibtdumpsR=(RCtparamst methodname((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt _req_bodyscCs|jr|jjSdS(N(R:t headers_inR(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_response_headerss  cCs|jr|jjSdS(N(R:tresponse_statusR(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_response_statuss  cCs|jr|jjSdS(N(R:tresponse_reasonR(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_response_reasons  c Cs |j}|sd S|jd}|s/d Std |j}|ddksZtt|dksrt|djd}t|dkst|\}}|dkrd }n t|}|jd\}}i|d 6t|d 6t|d 6}|S( sSReturns a dictionary with three values: length: the total length of the entity-body (can be None) first_byte_pos: the position of the first byte (zero based) last_byte_pos: the position of the last byte (zero based) The range is inclusive; that is, a response 8-9/102 means two bytes s Content-Rangeitbytesiit/t*t-tlengthtfirst_byte_post last_byte_posN(ReRtgettfilterRtAssertionErrorRtint( RCtheaderst content_rangeR!tbranget total_lentstarttendtresult((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_content_ranges*      cCs1|j}|sdS|jdr-|dSdS(Ns Accept-Ranges(ReRthas_key(RCRu((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt accept_rangess  cCstj|j\}}|d kr0tdnt|dksU|dd!dkr^tn|d kr||j|_n ||_|jd krtdntj |\|_ |_ |j sd |_ nd S( s Reset the attributes: self._host, self._handler, self._type according the value of self._uri. smissing protocol in uriiiis//thttpRRsunsupported XML-RPC protocols/RPC2N(Rshttps( turllibt splittypeR*RR&RtlowerR7tIOErrort splithostt_hostt_handler(RCRYRD((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR4's  %     c Gs(d}g}x|D]}t|}|tks=|tkrUtj|d|}n|tkr|tt|j|}ns|t krt|j|}nR|t ks|t krt g|j D]\}}|j||^q}n|j|qWt|dkr|dSt|SdS(s> Strip characters, which are not allowed according: http://www.w3.org/TR/2006/REC-xml-20060816/#charsets From spec: Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */ s#[\x00-\x09]|[\x0b-\x0c]|[\x0e-\x1f]tiiN(RYRRRtsubRttupletmapt_strip_charactersRRRtdictt iteritemstappendR(RCtargstregexpR{titemt item_typetnametval((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR>s     :cCsd}d}|jxg|tkr4tdn|jjx0|jjD]\}}|jj||qQW|jjdd|j |jjdd|j r|jjddn|r|jjd d |j r|jjd |j qn|j |j ||}y7|jj|j|j|d |j}|jj} Wn.tjk r} |jrtq| j} nXd|_|d7}| d krPn| dkrd|_qn|jj|_d|_d}|j stdn|jrd|j|jfGHntj|j\} } | dkrL| j} n| dkrktd| n|jdkr| dkrtdntj| \|_|_|jsd|_n|`|j | |j!|j"|j#|j$|_|j%|j&|j'|j(|j)|j*|j+|j,|j-gkrt.|jdrx$|j-D]} |jj/| q`Wqqt0|t1j2r|St0|t3rt4|dkr|d}n|S(sM Call a method on the remote server we can handle redirections. is!Unable to fetch requested PackagesX-Infos+RPC Processor (C) Red Hat, Inc (version %s)sX-Client-VersionisX-RHN-Transport-Capabilitysfollow-redirects=3sX-RHN-Redirectt0s X-RHN-PathRGii-i.sRedirects not alloweds%s redirected to %sRRRs%Redirected to unsupported protocol %ss)HTTPS redirected to HTTP is not supporteds/RPC2tadd_trusted_certN(i-i.(shttpshttps(5R4tMAX_REDIRECTIONStInvalidRedirectionErrorR:t clear_headersRBtitemst set_headert add_headerR3R5RARcRtrequestRRR>RfR_t ProtocolErrorR9terrcodeRR8R\R*RRRR7RR6R.R/R0R1R@R,R?R+R]R-tsetlangR<R;thasattrRt isinstancet transportstFileRR(RCRbRatredirect_responsetretrytktvRtresponset save_responsetpettypRDtcertfile((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt_requestXs                         ! cCsd|jj|j|jfS(Ns <%s for %s%s>(t __class__R'RR(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt__repr__scCst|j|S(N(t_MethodR(RCR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt __getattr__scKsB|js dS|ji|d6|d6t|jjd|dS(NttransferRF((R:tupdatetapplytset_transport_flags(RCRRFtkwargs((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs    cCs|js iS|jjS(N(R:tget_transport_flags(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs cCsdS(N((RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytreset_transport_flagsscCsTt|tgtdgkr=tt||j|t|jdr>|jj|ndS(NR(R;RR:RR(RCR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR scCs&|jr"|jjd|_ndS(N(R:tcloseR(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs  N()R'R(t__doc__Rt TransportRXt SafeTransportRWtProxyTransportRVtSafeProxyTransportRURRQR6R[R\R?R]R@RcReRgRiR|R~R4RRRt__str__RRRRRRRRRR(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR)bsH      C            #    s        t GETServerc BsteZdddddidddd ZdZdZdddZdZdZdddddZ RS( ic Csrtj||d|d|d|d|d|d| d| ||_||_|j|_|jddd ddS( NR$RHRIRERJRKRLtoffsettamount(R)RQt_client_versionRBRt _orig_handlert set_rangeR( RCRDRER$RHRItclient_versionRuRJRKRL((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRQs   cCs| st|dkr(tdntd|jjd}|d|d|gt|d}ddj||_|j|_|j r|j r|j |_nx0|j j D]\}}|jj||qW|jdk r|jdkrIt|jd}|jdk r]|t|j|jd}q]ndt|j }|jjdd ||jjd dnd S( Nis$Required parameter channel not foundcSs |dkS(NR((tx((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt+sRks$RHNiRmtRangesbytes=tallow_partial_contentR(Rt ExceptionRrRRtlisttjoinRRAR8R9t _new_req_bodyRBRR:Rt_offsetRRt_amountR(RCRaRbth_compsthndlthRRw((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRc's&% $cCs1tj|j\}}tj|\}}|S(N(RRR8R(RCRYttmpuritsitethandler((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRKscCs|dk rSyt|}WqStk rOtd|dtjdqSXn|dk ryt|}Wn1tk rtd|dtjdnX|dkrtd|qn||_||_dS(NsInvalid value `%s' for offsetisInvalid value `%s' for amounti(RRtR#t RangeErrortsystexc_infoRR(RCRR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRPs  '  $  cCs|jjdddS(NRi(R:R(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRescCst|j|S(N(t SlicingMethodR(RCR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRhsc Cs;tj||d|d|d|d|}|jd|S(NR$RHRIRLtGET(R)R6t set_method(RCRYR$RHRIRLtret((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR6ls* N( R'R(RRQRcRRRRR6(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs   $    RcBseZRS((R'R((((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRrsRcBseZRS((R'R((((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRuscCsUddl}t||js<|j|r8||gSgStd|j|S(NicSs|jdddjS(NRi(Rtstrip(R((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs(t mimetoolsRtMessageR}Rtgetallmatchingheaders(RuRR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytgetHeaderValuesxs   RcBs8eZdZdZdZdZdZeZRS(s{ some magic to bind an XML-RPC method to an RPC server. supports "nested" methods (e.g. examples.getStateName) cCs||_||_dS(N(t_sendt_name(RCtsendR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRQs cCst|jd|j|fS(Ns%s.%s(RRR(RCR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRscGs|j|j|S(N(RR(RCR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt__call__scCsd|jj|j|jfS(Ns <%s %s (%s)>(RR'RR(RC((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs(R'R(RRQRRRR(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs     RcBs)eZdZdZdZdZRS(s; A "slicing method" allows for byte range requests cCs tj|||d|_dS(N(RRQRR(RCRR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRQscCst|jd|j|fS(Ns%s.%s(RRR(RCR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRscOs|jd|_|jd|_y&|jjjd|jd|jWntk r]nX|j|j|}y|jjjWntk rnX|S(NRR( RqRRRtim_selfRtAttributeErrorRR(RCRRR{((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs  (R'R(RRQRR(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRs  cCsd}d}d}|j|r4t||}nd}|j|rt||}|rdj|}ddl}d|j|}qn||fS(s% Reports the error from the headers. iRsX-RHN-Fault-CodesX-RHN-Fault-StringiNs%s(R}RtRRtbase64t decodestring(RuRterrmsgtst_sListt_sR((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt reportErrors (R2RRRRRttypesRRRRRRRR_RR R"R%RR&R)RRRRRRRR(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyts,     .   % ^