Ë ‘€ÙÄËMíãóª—ddlZddlZddlmZddlmZddlmZddlm Z m Z ddl m Z m ZmZmZmZmZmZmZddlmZmZdd lmZej4Zd „Zd „ZGd „d ej:«Zej>ej@«Gd„d««Z!ej>ejDejF«Gd„dejH««Z%y)éN)Úfuturesé)Ú_)Úbin)ÚgetattrÚsetattr)Úbundle2Ú changegroupÚencodingÚerrorÚpushkeyÚpycompatÚutilÚwireprototypes)Ú repositoryr)ÚhashutilcóZ‡—ˆfd„}t|d‰«t|d‰j«|S)a°annotation for batchable methods Such methods must implement a coroutine as follows: @batchable def sample(self, one, two=None): # Build list of encoded arguments suitable for your wire protocol: encoded_args = [('one', encode(one),), ('two', encode(two),)] # Return it, along with a function that will receive the result # from the batched request. return encoded_args, decode The decorator returns a function which wraps this coroutine as a plain method, but adds the original method as an attribute called "batchable", which is used by remotebatch to split the call into separate encoding and decoding phases. cóž•—‰|i|¤Ž\}}|s|S|d}tj‰j«}|j||«}||«S)Nr)rÚbytesurlÚ__name__Ú _submitone)ÚargsÚoptsÚencoded_args_or_resÚdecodeÚselfÚcmdÚ encoded_resÚfs €ú=usr/lib/python3.12/site-packages/mercurial/wireprotov1peer.pyÚplainzbatchable..plain9sZø€Ù&'¨Ð&6°Ñ&6Ñ#ИVÙØ&Ð &Ø�A‰wˆÜ×Ñ § ¡ Ó+ˆØ—o‘o cÐ+>Ó?ˆ Ù�kÓ"Ð"óÚ batchabler)rr)rr!s` r r#r#&s+ø€ô&#ô ˆE�; Ô"Ü ˆE�:˜qŸz™zÔ*Ø €Lr"có‡—tjŠg}|D]Y\}}tˆfd„|D««sJ‚djˆfd„|j «D««}|j d||fz«Œ[dj|«S)z;Return a ``cmds`` argument value for the ``batch`` command.c3ó4•K—|]}‰|«|k(–—Œy­w©N©)Ú.0ÚkÚ escapeargs €r Ú z"encodebatchcmds..Psøèø€Ð7©h¨‘9˜Q“< 1Õ$©hùsƒó,c3óJ•K—|]\}}d‰|«‰|«fz–—Œy­w)s%s=%sNr')r(r)Úvr*s €r r+z"encodebatchcmds..Rs,øèø€ð Ù@P¹¸¸1ˆH™  !› ¡i°£lÐ3Õ 3Ñ@Pùsƒ #s%s %só;)rÚescapebatchargÚallÚjoinÚitemsÚappend)ÚreqÚcmdsÚopÚargsdictrr*s @r Úencodebatchcmdsr9Gs€ø€ä×-Ñ-€Ià €DÛ‰ ˆˆHôÓ7©hÓ7Ô7Ð7Ð7à�y‰yó Ø@HÇÁÔ@Pó ó ˆð � ‰ �H  D˜zÑ)Õ*ðð �9‰9�T‹?Ðr"có—eZdZdZdd„Zy)Ú unsentfuturea0A Future variation to represent an unsent command. Because we buffer commands and don't submit them immediately, calling ``result()`` on an unsent future could deadlock. Futures for buffered commands are represented by this type, which wraps ``result()`` to call ``sendcommands()``. Ncó¸—|j«r tjj||«S|jj «|j|«Sr&)ÚdonerÚFutureÚresultÚ _peerexecutorÚ sendcommands)rÚtimeouts r r?zunsentfuture.resultcsE€Ø �9‰9Œ;Ü—>‘>×(Ñ(¨¨wÓ7Ð 7à ×Ñ×'Ñ'Ô)ð �{‰{˜7Ó#Ð#r"r&)rÚ __module__Ú __qualname__Ú__doc__r?r'r"r r;r;Zs „ñô $r"r;có6—eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z y) Ú peerexecutorcóŠ—||_d|_d|_g|_t j «|_d|_d|_y)NF) Ú_peerÚ_sentÚ_closedÚ_callsÚweakrefÚWeakSetÚ_futuresÚ_responseexecutorÚ _responsef)rÚpeers r Ú__init__zpeerexecutor.__init__qs;€ØˆŒ ؈Œ ؈Œ ؈Œ ÜŸ™Ó)ˆŒ Ø!%ˆÔ؈�r"có—|Sr&r'©rs r Ú __enter__zpeerexecutor.__enter__zs€Øˆ r"có$—|j«yr&)Úclose)rÚexctypeÚexcvaleeÚexctbs r Ú__exit__zpeerexecutor.__exit__}s €Ø � ‰ � r"cóð‡‡‡‡—‰jrtjd«‚‰jrtjd«‚t ‰j t j‰«d«Š‰stjd‰z«‚ˆˆˆˆfd„}t ‰dd«r|«}t|_ ‰|_ |S‰jrtjd‰z«‚|«}‰j«|S)Ns4callcommand() cannot be used after commands are sents*callcommand() cannot be used after close()sAcannot call command %s: method of same name not available on peerc󤕗tj«}‰jj|«‰jj ‰‰‰|f«|Sr&)rr>rOÚaddrLr4)rrÚcommandÚfnrs €€€€r Úaddcallz)peerexecutor.callcommand..addcall›sAø€Ü—‘Ó ˆAØ �M‰M× Ñ ˜aÔ Ø �K‰K× Ñ  ¨¨r°1Ð5Ô 6؈Hr"r#FsX%s is not batchable and cannot be called on a command executor along with other commands) rJr ÚProgrammingErrorrKrrIrÚsysstrr;Ú __class__r@rLrA)rr`rrbrras``` @r Ú callcommandzpeerexecutor.callcommand€söû€Ø �:Š:Ü×(Ñ(ØGóð ð �<Š<Ü×(Ñ(Ø=óð ô �T—Z‘Z¤§¡°Ó!9¸4Ó @ˆáÜ×(Ñ(ðØ$ñ%óð ÷ ô �2�{ EÔ *Ù“ ˆAô'ˆAŒKØ"ˆAŒOðˆð�{Š{Ü×,Ñ,ð:Ører@ÚlenÚset_running_or_notify_cancelrÚ strkwargsÚ set_resultÚ ExceptionÚfuture_set_exception_infoÚsysÚexc_infor#Ú__self__r4rIÚ _submitbatchÚThreadPoolExecutorrPÚsubmitÚ_readbatchresponserQ) rrÚcallsr`rrar?ÚrequestsÚstatesrrÚ wireresultss r rAzpeerexecutor.sendcommands·s€Ø �:Š:Ø à�{Š{Ø àˆŒ 𗔈Aܘ!œ\Õ*Ü%Ÿn™n�” Ø"&�•ðð — ‘ ˆàˆŒ ô ˆu‹:˜Š?Ø#(¨¡8Ñ ˆG�T˜2˜qð×1Ñ1Ô3Øð %ÙÑ7œh×0Ñ0°Ó6Ñ7�ð— ‘ ˜VÔ$à ðˆØˆã$)Ñ ˆG�T˜2˜qà×1Ñ1Ô3Øð Ø.:¨b¯l©lØ—K‘Kñ/Ü#+×#5Ñ#5°dÓ#;ñ/Ñ+Ð# VñØ— ‘ Ð0Õ1à—‘ Ð*=Ð >Ô?Ø— ‘ ˜w¨¬9°fÐ=Õ>ð#%*ñ&Ø ð—j‘j×-Ñ-¨hÓ7ˆ ô")×!;Ñ!;¸AÓ!>ˆÔØ×0Ñ0×7Ñ7Ø × #Ñ # V¨[ó ˆ�øôaò JÜ×2Ñ2°1´c·l±l³nÀQÀRÐ6HÕIð ð  Jûô4ò Ü×2Ñ2°1´c·l±l³nÀQÀRÐ6HÔIÚð ús$ÂGÃ*3G>Ç4G;Ç:G;Ç>4H6È5H6c óª—|j«|jryd|_|jsy |jj«|jj d¬«d|_d|_|j D]A}|j«rŒ|jtjtd«d««ŒCd|_y#|jj d¬«d|_d|_|j D]A}|j«rŒ|jtjtd«d««ŒCd|_wxYw)NT)Úwaitó"unfulfilled batch command response) rArKrQr?rPÚshutdownrOr=Ú set_exceptionr Ú ResponseErrorr)rrs r rXzpeerexecutor.close s€Ø ×ÑÔà �<Š<Ø àˆŒ à�ŠØ ð !Ø �O‰O× "Ñ "Ô $à × "Ñ "× +Ñ +°Ð +Ô 6Ø"ˆDŒOØ%)ˆDÔ "ð—]”]�Ø—v‘v•xØ—O‘OÜ×+Ñ+ÜÐCÓDÀdóõð#ð!ˆD�Møð × "Ñ "× +Ñ +°Ð +Ô 6Ø"ˆDŒOØ%)ˆDÔ "ð—]”]�Ø—v‘v•xØ—O‘OÜ×+Ñ+ÜÐCÓDÀdóõð#ð!ˆD�Mús³CÃA EÄ8Ec óV—|D]-\}}}} t|«} ||«}|j|«Œ/y#t$r.tj|t j «dd«YŒgwxYw#t$r1|jtjtd«d««YŒ¤wxYw)Nrr|) ÚnextrlrmrrnrorpÚ StopIterationr~r rr) rrxryr`rr#rÚ remoteresultr?s r ruzpeerexecutor._readbatchresponse)sª€ó.4Ñ )ˆG�Q˜  6ð )Ü# KÓ0� ð)Ù# LÓ1�Fð—L‘L Õ(ñ).4øô"!òNÜ×6Ñ6°q¼#¿,¹,».ÈÈÐ:LÖMðNûô!ò ð—‘Ü×'Ñ'ÜÐ?Ó@À$óöð  ús Œ A.˜4´4A+Á*A+Á.7B(Â'B(N) rrCrDrSrVr\rfrArXrur'r"r rGrGos)„òòòò5ònP òd!ó@)r"rGcóê—eZdZdZd„Zd„Zd„Zd„Zed„«Z ed„«Z ed„«Z ed „«Z ed „«Z ed „«Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd„Zd„Zd„Zd„Zd„Zy)ÚwirepeerzîClient-side interface for communicating with a peer repository. Methods commonly call wire protocol commands of the same name. See also httppeer.py and sshpeer.py for protocol-specific implementations of this interface. có—t|«Sr&)rGrUs r Úcommandexecutorzwirepeer.commandexecutorOs €Ü˜DÓ!Ð!r"cóž—|jd«r|jd«S|jdtd««|jd«S)Nsclonebundles_manifests clonebundless clone bundles)ÚcapableÚ_callÚ requirecaprrUs r Ú clonebundleszwirepeer.clonebundlesTsB€Ø �<‰<Ð0Ô 1Ø—:‘:Ð6Ó7Ð 7à �O‰O˜O¬QÐ/?Ó-@Ô AØ—:‘:˜oÓ.Ð .r"có—yr&r')rÚstreams r Ú_finish_inline_clone_bundlez$wirepeer._finish_inline_clone_bundle[s€Ø r"c#ó¾K—|jd|¬«}tj|«}tj||¬«D]}|–—Œ|j |«y­w)Nsget_cached_bundle_inline)Úpath)Úlimit)Ú _callstreamrÚuvarintdecodestreamÚ filechunkiterr�)rr‘rŽÚlengthÚchunks r Úget_cached_bundle_inlinez!wirepeer.get_cached_bundle_inline^sZèø€Ø×!Ñ!Ð"=ÀDÐ!ÓIˆÜ×)Ñ)¨&Ó1ˆô×'Ñ'¨°f×=ˆEØ‹Kð>ð ×(Ñ(¨Õ0ùs‚AAcóv‡—‰jdtd««ˆfd„}dtj|«i|fS)Nslookupslook up remote revisionc󪕗|ddjdd«\}}t|«r t|«S‰jt j |««y)Néÿÿÿÿó r)ÚsplitÚintrÚ_abortr Ú RepoError)ÚdÚsuccessÚdatars €r rzwirepeer.lookup..decodelsCø€Ø˜c˜r˜FŸL™L¨¨qÓ1‰MˆG�TÜ�7Œ|ܘ4“yÐ à— ‘ œEŸO™O¨DÓ1Õ2r"ókey)r‹rr Ú fromlocal)rÚkeyrs` r Úlookupzwirepeer.lookuphs9ø€à �‰˜ ¤1Ð%?Ó#@ÔAô 3ðœ×*Ñ*¨3Ó/Ð0°&Ð8Ð8r"có‡—ˆfd„}i|fS)Ncó°•— tj|dd«S#t$r1‰jt j t d«|««YywxYw)Nr›óunexpected response:)rÚ decodelistÚ ValueErrorrŸr rr)r¡rs €r rzwirepeer.heads..decodewsPø€ð PÜ%×0Ñ0°°3°B°Ó8Ð8øÜò PØ— ‘ œE×/Ñ/´Ð2IÓ0JÈAÓNÖOð Púsƒ›7AÁAr'©rrs` r Úheadszwirepeer.headsusø€ô Pð �6ˆzÐr"có@‡—ˆfd„}dtj|«i|fS)Ncóô•— tj|«D�cgc]}tt|««‘Œc}Scc}w#t$r1‰j t jtd«|««YywxYw)Nrª) rÚ iterbytestrÚboolržr¬rŸr rr)r¡Úbrs €r rzwirepeer.known..decode�sfø€ð PÜ.6×.BÑ.BÀ1Ô.EÓFÑ.E¨œœS ›V� Ð.EÑFÐFùÒFøÜò PØ— ‘ œE×/Ñ/´Ð2IÓ0JÈAÓNÖOð Púsƒ=š8µ=¸=½7A7Á6A7ónodes)rÚ encodelist)rÚnodesrs` r Úknownzwirepeer.knowns&ø€ô Pð œ.×3Ñ3°EÓ:Ð;¸VÐCÐCr"có‡—ˆfd„}i|fS)Ncó`•— i}|j«D]Y}|jdd«\}}tjtj |««}t j|«}|||<Œ[|S#t$r1‰jtjtd«|««YywxYw)Nrœrrª) Ú splitlinesr�r ÚtolocalÚurlreqÚunquoterr«Ú TypeErrorrŸr rr)r¡Ú branchmapÚ branchpartÚ branchnameÚ branchheadsrs €r rz"wirepeer.branchmap..decode‹s ø€ð PØ� Ø"#§,¡,¦.�JØ.8×.>Ñ.>¸tÀQÓ.GÑ+�J  Ü!)×!1Ñ!1´&·.±.ÀÓ2LÓ!M�JÜ"0×";Ñ";¸KÓ"H�KØ,7�I˜jÒ)ð #1ð !Ð øÜò PØ— ‘ œE×/Ñ/´Ð2IÓ0JÈAÓNÖOð PúsƒA/A3Á37B-Â,B-r'r­s` r r¿zwirepeer.branchmap‰sø€ô Pð�6ˆzÐr"c󪇇—‰jd«sidfS‰jjd‰z«ˆˆfd„}dtj‰«i|fS)Nópushkeyspreparing listkeys for "%s" c󀕗‰jjd‰t|«fz«tj|«S)Ns$received listkey for "%s": %i bytes )ÚuiÚdebugriÚ pushkeymodÚ decodekeys)r¡Ú namespacers €€r rz!wirepeer.listkeys..decodeŸs7ø€Ø �G‰G�M‰MØ8¸IÄsÈ1ÃvÐ;NÑNô ô×(Ñ(¨Ó+Ð +r"ó namespace©r‰rÆrÇr r¥)rrÊrs`` r Úlistkeyszwirepeer.listkeys™sPù€à�|‰|˜JÔ'Ø�t�8ˆOØ �‰� ‰ Ð6¸ÑBÔCõ ,ð œh×0Ñ0°Ó;Ð<¸fÐDÐDr"có‡—‰jd«sy‰jjd||fz«ˆfd„}tj|«tj|«tj|«tj|«dœ|fS)NrÄ)FNspreparing pushkey for "%s:%s" có*•—|jdd«\}} tt|««}|jd«D]'}‰jjt d«|«Œ)|S#t$r t j t d«|«‚wxYw)Nó ró"push failed (unexpected response):Tóremote: ) r�r²ržr¬r rrrºrÆÚstatus)r¡ÚoutputÚlrs €r rz wirepeer.pushkey..decode­sŠø€ØŸ™  qÓ)‰IˆAˆvð Üœ˜Q›“L�ð ×&Ñ& tÖ,�Ø—‘—‘œq ›~¨qÕ1ð-àˆHøô ò Ü×)Ñ)ÜÐ;Ó<¸aóðð ús ˜A)Á))B)rËr¤soldsnewrÌ)rrÊr¦ÚoldÚnewrs` r r zwirepeer.pushkey§s€ø€à�|‰|˜JÔ'ØØ �‰� ‰ Ð8¸IÀsÐ;KÑKÔLô ô#×,Ñ,¨YÓ7Ü×&Ñ& sÓ+Ü×&Ñ& sÓ+Ü×&Ñ& sÓ+ñ  ð ð ð r"có$—|jd«S)Ns stream_out)r“rUs r Ú stream_outzwirepeer.stream_outÀs€Ø×Ñ  Ó.Ð.r"c ó—tj|«}|jdtd««i}|j d«xs t «}|j «D]¿\}}|€Œ tjj |«}|€tjd|z«‚|dk(rtj|«}n^|dk(rdj|«}nG|dk(rdjt|««}n'|d k(rd t|«z}n|d k7rtd |z«‚|||<ŒÁ|j ditj"|«¤Ž}t%d „|D««r t'j(|j*|«St-j.|d«S)Nó getbundleólook up remote changess bundlecapss$Unexpectedly None keytype for key %sr´scsvr,sscsvsbooleans%isplains unknown getbundle option type %sc3ó>K—|]}|jd«–—Œy­w)sHG2N)Ú startswith)r(Úcaps r r+z%wirepeer.getbundle..Üsèø€Ð=±*¨3�—‘˜v×&±*ùs‚óUN)rÛ)rÚ byteskwargsr‹rÚgetÚsetr3rÚGETBUNDLE_ARGUMENTSr rcrµr2Úsortedr²ÚKeyErrorÚ_callcompressablerkÚanyr Ú getunbundlerrÆÚchangegroupmodÚ cg1unpacker) rÚsourceÚkwargsrÚ bundlecapsr¦ÚvalueÚkeytypers r Ú getbundlezwirepeer.getbundleÃsn€Ü×%Ñ% fÓ-ˆØ �‰˜ ¤aÐ(AÓ&BÔC؈ؗZ‘Z  Ó.Ò7´#³%ˆ Ø Ÿ,™,ž.‰JˆC�؈}ØÜ$×8Ñ8×<Ñ<¸SÓAˆG؈Ü×,Ñ,Ø;¸cÑAóðð˜HÒ$Ü&×1Ñ1°%Ó8‘ؘFÒ"ØŸ ™  %Ó(‘ؘGÒ#ØŸ ™ ¤&¨£-Ó0‘ؘJÒ&ؤ U£ Ñ+‘ؘHÒ$ÜÐBÀWÑLÓMÐM؈D�ŠIð%)ð& #ˆD× "Ñ "Ñ L´8×3EÑ3EÀdÓ3KÑ LˆÜ Ñ=±*Ó=Ô >Ü×'Ñ'¨¯©°Ó3Ð 3ä!×-Ñ-¨a°Ó7Ð 7r"c óô—|dgk7rb|jd«rQtjdtjdj t |«««j«g«}ntj|«}tj|d«r„|jd||¬«\}}|dk(rtjtd«|«‚ t|«}|j!d «D]'}|j"j%td «|«Œ)|S|j'd||¬«}t)j*|j"|«}|S#t$r tjtd «|«‚wxYw) aÈSend cg (a readable file-like object representing the changegroup to push, typically a chunkbuffer object) to the remote server as a bundle. When pushing a bundle10 stream, return an integer indicating the result of the push (see changegroup.apply()). When pushing a bundle20 stream, return a bundle20 stream. `url` is the url the client thinks it's pushing to, which is visible to hooks. sforces unbundlehashshashedr"Ú deltaheadersunbundle)r®s push failed:rÑTrÒ)r‰rrµrÚsha1r2råÚdigestrÚ safehasattrÚ _callpushr rrržr¬rºrÆrÓÚ_calltwowaystreamr ré)rÚbundler®ÚurlÚretrÔrÕrŽs r Úunbundlezwirepeer.unbundleásN€ð �X�JÒ  4§<¡<°Ô#@Ü"×-Ñ-ØœHŸM™M¨#¯(©(´6¸%³=Ó*AÓB×IÑIÓKÐLó‰Eô#×-Ñ-¨eÓ4ˆEä × Ñ ˜F MÔ 2àŸ.™.¨°fÀE˜.ÓJ‰KˆC�Ø�cŠzÜ×)Ñ)¬!¨OÓ*<¸fÓEÐEð ܘ#“h�ð ×&Ñ& tÖ,�Ø—‘—‘œq ›~¨qÕ1ð-ð ˆ ð×+Ñ+¨K¸ÀuÐ+ÓMˆFÜ×&Ñ& t§w¡w°Ó7ˆC؈ øôò Ü×)Ñ)ÜÐ;Ó<¸cóðð ús à EÅ)E7cóN—tj|«}|jd|¬«} |j«D�cgc] }t tj |««‘Œ"}}|Scc}w#t $r1|jtjtd«|««YywxYw)Nsbranches)r¶rª) rrµrŠrºÚtupler«r¬rŸr rr)rr¶Únr¡r³Úbrs r Úbrancheszwirepeer.branchess�€Ü × %Ñ % eÓ ,ˆØ �J‰J�{¨!ˆJÓ ,ˆð LØ?@¿|¹|¼~ÓN¹~¸!”%œ×1Ñ1°!Ó4Õ5¸~ˆBÐN؈IùòOøäò LØ �K‰Kœ×+Ñ+¬AÐ.EÓ,FÈÓJÖ Kð Lús"ªA*¼%A%Á!A*Á%A*Á*7B$Â#B$c ó®—d}g}tdt|«|«D]u}dj||||zD�cgc]}tj|d«‘Œc}«}|j d|¬«} |j d„|j«D««Œw|Scc}w#t$r1|jtjtd«|««YŒ¸wxYw) Nérrœó-sbetween)Úpairsc3óVK—|]!}|xrtj|«xsg–—Œ#y­wr&)rr«)r(rÕs r r+z#wirepeer.between..#s0èø€ðá+˜ðÒ6œ.×3Ñ3°AÓ6Ò<¸"Ó<Ù+ùs‚')rª) Úrangerir2rrµrŠÚextendrºr¬rŸr rr)rrÚbatchÚrÚiÚprÿr¡s r Úbetweenzwirepeer.betweensÝ€ØˆØ ˆÜ�qœ#˜e›* eÖ,ˆAØ— ‘ ð# 1 q¨5¡yÑ1óá1˜ô#×-Ñ-¨a°Õ6Ø1ñóˆAð — ‘ ˜:¨Q� Ó/ˆAð PØ—‘ñàŸ\™\œ^óõð-ðˆùòøôò PØ— ‘ œE×/Ñ/´Ð2IÓ0JÈAÓNÖOð Pús³B Á+&BÂ7CÃCcó~—tj|«}|jd|¬«}tj|d«S)Ns changegroup)Úrootsrà)rrµrçrêrë)rr¶rìrÿrs r r zwirepeer.changegroup+s:€Ü × %Ñ % eÓ ,ˆØ × "Ñ " >¸Ð "Ó ;ˆÜ×)Ñ)¨!¨UÓ3Ð3r"cóà—|jdtd««tj|«}tj|«}|j d||¬«}t j |d«S)NschangegroupsubsetrÜ)Úbasesr®rà)r‹rrrµrçrêrë)rrr®rìrs r Úchangegroupsubsetzwirepeer.changegroupsubset0sh€Ø �‰Ð,¬aÐ0IÓ.JÔKÜ×)Ñ)¨%Ó0ˆÜ×)Ñ)¨%Ó0ˆØ × "Ñ "Ø ¨°Uð #ó ˆô×)Ñ)¨!¨UÓ3Ð3r"c#óŽK—|j}|jrN|jdd«r<|jd«|D]&\}}d}|j||t |«fz«Œ(t j }|jdt|«¬«}|jd«}|g} |r€d|vr+|r)|jd«}| j|«d|vr|rŒ)d j| «} d| vr$| jdd «\} } || «–—d| vrŒ$|jd«}| |g} |rŒ€|d j| ««–—y ­w) zqrun batch request on the server Returns an iterator of the raw responses from the server. sdevelsdebug.peer-requests$devel-peer-request: batched-content s+devel-peer-request: - %s (%d arguments) sbatch)r6ir/r"rN) rÆÚ debugflagÚ configboolrÇrirÚunescapebatchargr“r9Úreadr4r2r�) rr5rÆr7rÚmsgÚ unescapeargÚrspr—ÚworkÚmergedÚones r rrzwirepeer._submitbatch;s<èø€ð �W‰WˆØ �<Š<˜BŸM™M¨(Ð4IÔJØ �H‰HÐ=Ô >Û‘��DØE�Ø—‘˜ ¤C¨£I˜Ñ.Õ/ð ô%×5Ñ5ˆ à×јx¬o¸cÓ.BÐÓCˆØ—‘˜“ˆØˆwˆÙؘeÑ#©ØŸ™ ›�Ø— ‘ ˜EÔ"ð˜eÑ#ªð—X‘X˜d“^ˆFؘ&‘.Ø$Ÿl™l¨4°Ó3‘ ��VÙ! #Ó&Ò&ð˜&’.ð—H‘H˜T“NˆEؘE�?ˆDòñ˜#Ÿ(™( 4›.Ó)Ó)ùs‚CEÃ8EÄEÄ+EcóN—|j|fitj|«¤ŽSr&)rŠrrk)rr7rs r rzwirepeer._submitoneXs#€Øˆt�z‰z˜"Ñ9¤× 2Ñ 2°4Ó 8Ñ9Ð9r"NcóL—i}|�||d<|�||d<|jd||dœ|¤ŽS)NÚthreeÚfour)rÚtwo)s debugwireargs)rŠ)rrr"r r!Úfivers r Ú debugwireargszwirepeer.debugwireargs[s@€àˆØ Ð Ø!ˆD�‰MØ Ð ØˆD�‰L؈t�z‰zÐE°¸ÑEÀÑEÐEr"c ó—t«‚)z†execute on the server The command is expected to return a simple string. returns the server reply as a string.©ÚNotImplementedError©rrrs r rŠzwirepeer._callds €ô "Ó#Ð#r"c ó—t«‚)a execute on the server The command is expected to return a stream. Note that if the command doesn't return a stream, _callstream behaves differently for ssh and http peers. returns the server reply as a file like object. r&r(s r r“zwirepeer._callstreamló €ô"Ó#Ð#r"c ó—t«‚)aEexecute on the server The command is expected to return a stream. The stream may have been compressed in some implementations. This function takes care of the decompression. This is the only difference with _callstream. returns the server reply as a file like object. r&r(s r rçzwirepeer._callcompressablews €ô"Ó#Ð#r"c ó—t«‚)züexecute a on server The command is expected to be related to a push. Push has a special return method. returns the server reply as a (ret, output) tuple. ret is either empty (error) or a stringified int. r&©rrÚfprs r r÷zwirepeer._callpush„r*r"c ó—t«‚)zqexecute on server The command will send a stream to the server and get a stream in reply. r&r-s r røzwirepeer._calltwowaystream�s €ô "Ó#Ð#r"có—t«‚)zBclearly abort the wire protocol connection and raise the exceptionr&)rÚ exceptions r rŸzwirepeer._abort–s €ä!Ó#Ð#r")NNN)rrCrDrEr‡rŒr�r˜r#r§r®r·r¿rÍr rÙrñrürr r rrrrr$rŠr“rçr÷rørŸr'r"r r…r…Csê„ñò"ò /ò ò1ðñ 9óð 9ðñóððñDóðDðñ óð ðñ Eóð Eðñóðò0/ò8ò<'òZLòò(4ò 4ò*ò::óFò$ò $ò $ò $ò$ó$r"r…)&rorMÚ concurrentrÚi18nrÚnoderrrrÚr r rêr r r rÈrrÚ interfacesrÚ interfaceutilÚutilsrr¼r#r9r>r;Ú implementerÚipeercommandexecutorrGÚ ipeercommandsÚipeerlegacycommandsrRr…r'r"r Úr=sÈðó ÛåÝÝ÷÷ ÷ ó ÷õà �‰€òòBô&$�7—>‘>ô$ð*€×ј:×:Ñ:Ó;÷P)ðP)ó<ðP)ðf€×ÑØ×јj×<Ñ<óôR$ˆz�‰óR$óñR$r"