/opt/cloudlinux/venv/lib/python3.11/site-packages/git/__pycache__
NameSizeModeActions
cmd.cpython-311.pyc594240644editdlrm
compat.cpython-311.pyc36940644editdlrm
config.cpython-311.pyc458610644editdlrm
db.cpython-311.pyc37390644editdlrm
diff.cpython-311.pyc264700644editdlrm
exc.cpython-311.pyc114790644editdlrm
remote.cpython-311.pyc510140644editdlrm
types.cpython-311.pyc41550644editdlrm
util.cpython-311.pyc554660644editdlrm
__init__.cpython-311.pyc32820644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/git/__pycache__/remote.cpython-311.pyc (51014B)
§ �ņrã óî—ddlZddlZddlmZmZddlmZmZddlm Z ddl m Z m Z m Z mZmZddl mZddlmZmZmZddlmZmZmZmZmZdd lmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(dd l)m*Z*m+Z+m,Z,e$r dd l-m.Z.dd l/m0Z0e+d Z1ej2d¦«Z3e3 4ej5¦«¦«dZ6dedede&ededefdfdefd„Z7e(dddefd„¦«Z8e(dedefdefd„¦«Z8e(dedefd„¦«Z8de&edefedfde&eeffd„Z8Gd„de e9¦«Z:Gd„de e:¦«Z;Gd„d e e9¦«Z<Gd!„d"e e ¦«Z=dS)#éN)Úhandle_process_outputÚGit)ÚdefencÚ force_text)ÚGitCommandError)Ú LazyMixinÚ IterableObjÚ IterableListÚRemoteProgressÚCallableRemoteProgress)Ú join_path)ÚGitConfigParserÚSectionConstraintÚcp)ÚHeadÚ ReferenceÚRemoteReferenceÚSymbolicReferenceÚ TagReference) ÚAnyÚCallableÚDictÚIteratorÚListÚNoReturnÚOptionalÚSequenceÚ TYPE_CHECKINGÚTypeÚUnionÚcastÚoverload)ÚPathLikeÚLiteralÚ Commit_ish)ÚRepo)ÚUpdateProgress)ú ú!ú+ú-Ú*ú=Útú?z git.remote)r ÚPushInfoÚ FetchInfoÚRemoteÚkwargsÚgitÚprogressr'.Úreturncó>—|�|jdd…}|dkrd|d<|S)záAdd the --progress flag to the given kwargs dict if supported by the git command. If the actual progress in the given progress instance is not given, we do not request any progress :return: possibly altered kwargsNé)ééTr5)Ú version_info)r3r4r5Úvs ú\/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/git/remote.pyÚ add_progressr>Ms5€ðÐØ Ô ˜R˜a˜RÔ ˆØ �Š;ˆ;Ø!%ˆF�:Ñ ð €Mócó—dS©N©©r5s r=Úto_progress_instancerDbó€à€Cr?có—dSrArBrCs r=rDrDgrEr?có—dSrArBrCs r=rDrDlrEr?cób—t|¦«rt|¦«S|€t¦«S|S)zUGiven the 'progress' return a suitable object derived from RemoteProgress(). )Úcallabler r rCs r=rDrDqs=€õ�ÑÔð Ý% hÑ/Ô/Ð/ð Ð ÝÑÔÐð €Or?có^—eZdZdZdZdZd„ed¦«D¦«\ ZZZ Z Z Z Z ZZZZe e deeeedœZ dd ed eedfd ed ddeededdfd„Zedeeeedffd„¦«Zedeeeffd„¦«Zed ddeddfd„¦«Z eddde!de!de"fd„¦«Z#dS)r0ah Carries information about the result of a push operation of a single head:: info = remote.push()[0] info.flags # bitflags providing more information about the result info.local_ref # Reference pointing to the local reference that was pushed # It is None if the ref was deleted. info.remote_ref_string # path to the remote reference located on the remote side info.remote_ref # Remote Reference on the local side corresponding to # the remote_ref_string. It can be a TagReference as well. info.old_commit # commit at which the remote_ref was standing before we pushed # it to local_ref.commit. Will be None if an error was indicated info.summary # summary line providing human readable english text about the push )Ú local_refÚremote_ref_stringÚflagsÚ_old_commit_shaÚ_remoteÚsummaryÚpushinfocó—g|]}d|z‘ŒS©r9rB©Ú.0Úxs r=ú zPushInfo.©s€Ð#Ð#Ð#�Aˆˆa‰Ð#Ð#Ð#r?é r)ÚXr+r,r*r(r-r)NÚrMrKrLÚremoter2Ú old_commitrPr6cóZ—||_||_||_||_||_||_dS)z€Initialize a new instance local_ref: HEAD | Head | RemoteReference | TagReference | Reference | SymbolicReference | NoneN)rMrKrLrOrNrP)ÚselfrMrKrLr[r\rPs r=Ú__init__zPushInfo.__init__µs4€ðˆŒ Ø"ˆŒØ!2ˆÔ؈Œ Ø)ˆÔ؈Œ ˆ ˆ r?có\—|jr$|jj |j¦«pdSrA)rNrOÚrepoÚcommit©r^s r=r\zPushInfo.old_commitÇs,€àÔ#ÐV¨¬ Ô(9×(@Ò(@ÀÔAUÑ(VÔ(VÐ^ÐZ^Ð^r?có‚—|j d¦«rt|jj|j¦«S|j d¦«rVt |jj|j¦«}t |jjdt|j¦«›d|j›�¦«Std|jz¦«‚)z  :return: Remote Reference or TagReference in the local repository corresponding to the remote_ref_string kept in this instance.z refs/tagsz refs/headsz refs/remotes/ú/zCould not handle remote ref: %r) rLÚ startswithrrOrarrÚstrÚnameÚ ValueError)r^Ú remote_refs r=rjzPushInfo.remote_refËs¹€ð Ô !× ,Ò ,¨[Ñ 9Ô 9ð YÝ ¤ Ô 1°4Ô3IÑJÔJÐ JØ Ô #× .Ò .¨|Ñ <Ô <ð YÝ" 4¤<Ô#4°dÔ6LÑMÔMˆJÝ"Ø” Ô!Ð!Ý(+¨D¬LÑ(9Ô(9Ð(9Ð(9¸:¼?¸?ÐKñôð õ Ð>ÀÔAWÑWÑXÔXÐ Xr?Úlinecó—| dd¦«\}}}d} ||j|z}n(#t$r}td|›d|›�¦«|‚d}~wwxYw| d¦«\}} ||jzrd} n#|dkrd} nt j|j|¦«} d} | d ¦«rZd |vr ||j z}nˆd |vr ||j z}nyd |vr ||j z}njd |vr ||j z}n[d|vr ||j z}nLd|vr ||jz}n=d} |dkrd} | d¦«d | ¦«\} }| } t|| | || |¦«S)z•Create a new PushInfo instance as parsed from line which is expected to be like refs/heads/master:refs/heads/master 05d2687..1d0568e as bytesú érúControl character ú unknown as parsed from line Nú:z(delete)ú[z [rejected]z[remote rejected]z[remote failure]z [no match]z [new tag]z [new branch]ú...r(ú..)ÚsplitÚ _flag_mapÚKeyErrorriÚDELETEDrÚ from_pathrarfÚREJECTEDÚREMOTE_REJECTEDÚREMOTE_FAILUREÚERRORÚNEW_TAGÚNEW_HEADr0)Úclsr[rkÚcontrol_characterÚfrom_torPrMÚeÚfrom_ref_stringÚ to_ref_stringÚfrom_refr\Ú split_tokenÚold_shaÚ_new_shas r=Ú _from_linezPushInfo._from_lineÞsì€ð/3¯jªj¸¸qÑ.AÔ.AÑ+И7 G؈ð wØ �S”]Ð#4Ô5Ñ 5ˆEˆEøÝð wð wð wÝ�*ÐVgÐVgÐVgÐimÐimÐnÑoÔoÐuvÐ vøøøøð wøøøð *1¯ª°sÑ);Ô);Ñ&ˆ˜Ø �3”;Ñ ð MØ7;ˆHˆHà *Ò,Ð,Ø��å$Ô.¨v¬{¸OÑLÔL�ð%)ˆ Ø × Ò ˜cÑ "Ô "ð !ؘwÐ&Ð&ؘœÑ%��Ø$¨Ð/Ð/ؘÔ,Ñ,��Ø# wÐ.Ð.ؘÔ+Ñ+��Ø Ð(Ð(ؘœÑ"��Ø Ð'Ð'ؘœÑ$��Ø 7Ð*Ð*ؘœÑ%�øð  ˆKØ  CÒ'Ð'Ø"� Ø '§ ¢ ¨cÑ 2Ô 2°1Ô 5× ;Ò ;¸KÑ HÔ HÑ ˆG�Xà ˆJõ˜˜x¨¸À ÈGÑTÔTÐTsž/¯ A¹AÁArar&Úargsr3có—t‚rA©ÚNotImplementedError©r€rar‹r3s r=Ú iter_itemszPushInfo.iter_itemsó€å!Ð!r?)NrZ)$Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__Ú_id_attribute_Úranger~rÚNO_MATCHrzr{r|rxÚ FORCED_UPDATEÚ FAST_FORWARDÚ UP_TO_DATEr}rvÚintr rrgrr_Úpropertyr%r\rrrjÚ classmethodrŠrrr�rBr?r=r0r0ƒs€€€ð ð ð€Ið €Nð $Ð#˜˜˜r™œÐ#Ñ#Ô#ñ ØØØØØØØØØØØ ðØ Ø Ø Ø Ø Ø ðð€Ið %)ØððàððÐ*¨DÐ0Ô1ððð ð ð ð ˜S”Mð ððð ððððð$ð_˜E #Ð'8¸*ÀdÐ"JÔKð_ð_ð_ñ„Xð_ððY˜E /°<Ð"?Ô@ðYðYðYñ„XðYð$ð2U ð2U°ð2U¸ ð2Uð2Uð2Uñ„[ð2Uðhð"˜fð"¨Sð"¸Cð"ÀHð"ð"ð"ñ„[ð"ð"ð"r?r0có4‡—eZdZdZdd„Zdˆfd„ Zdd„ZˆxZS) Ú PushInfoListz+ IterableList of PushInfo objects. r6cóR—tttj|d¦«¦«S©NÚ push_infos)r!r¡r Ú__new__©r€s r=r¥zPushInfoList.__new__s€Ý•L¥,Ô"6°s¸LÑ"IÔ"IÑJÔJÐJr?NcóX•—t¦« d¦«d|_dSr£)Úsuperr_Úerror)r^Ú __class__s €r=r_zPushInfoList.__init__ s&ø€Ý ‰Œ×Ò˜Ñ&Ô&Ð&Ø*.ˆŒ ˆ ˆ r?có"—|jr|j‚dS)z? Raise an exception if any ref failed to push. N)r©rcs r=Úraise_if_errorzPushInfoList.raise_if_error$s €ð Œ:ð Ø”*Ð ð ð r?)r6r¡©r6N)r’r“r”r•r¥r_r¬Ú __classcell__©rªs@r=r¡r¡ssø€€€€€ðððKðKðKðKð/ð/ð/ð/ð/ð/ððððððððr?r¡c ó¤—eZdZUdZdZdZd„ed¦«D¦«\ZZZ Z Z Z Z Zejd¦«Zee de e e dœZeeefed <ed ed fd „¦«Z d dedededeedfdeed df d„Z d efd„Z!e"d efd„¦«Z#e"d efd„¦«Z$edddeded dfd„¦«Z%eddde&de&d e'fd„¦«Z(dS)!r1a* Carries information about the results of a fetch operation of a single head:: info = remote.fetch()[0] info.ref # Symbolic Reference or RemoteReference to the changed # remote head or FETCH_HEAD info.flags # additional flags to be & with enumeration members, # i.e. info.flags & info.REJECTED # is 0 if ref is SymbolicReference info.note # additional notes given by git-fetch intended for the user info.old_commit # if info.flags & info.FORCED_UPDATE|info.FAST_FORWARD, # field is set to the previous location of ref, otherwise None info.remote_ref_path # The path from which we fetched on the remote. It's the remote's version of our info.ref )Úrefr\rMÚnoteÚremote_ref_pathÚ fetchinfocó—g|]}d|z‘ŒSrSrBrTs r=rWzFetchInfo.Is€Ð"Ð"Ð"�Aˆˆa‰Ð"Ð"Ð"r?ézE^\s*(.) (\[[\w\s\.$@]+\]|[\w\.$@]+)\s+(.+) -> ([^\s]+)( \(.*\)?$)?r)r)r*r,r-r(r+rvr6Tcóê— |jd=n#t$rYnwxYw |jd=n#t$rYnwxYwt¦«jdd…dkr|j|jd<n|j|jd<dS)zWThis gets called by the refresh function (see the top level __init__). r.r+Nr8)r8é T)rvrwrr;Ú TAG_UPDATEr¦s r=ÚrefreshzFetchInfo.refreshVs§€ð  Ø” ˜cÐ"Ð"øÝð ð ð Ø ˆDð øøøð Ø” ˜cÐ"Ð"øÝð ð ð Ø ˆDð øøøõ ‰5Œ5Ô ˜b˜q˜bÔ ! WÒ ,Ð ,Ø!$¤ˆCŒM˜#Ñ Ð à!$¤ˆCŒM˜#Ñ àˆts‚ ‹ —œ%¥ 2±2rZNr±rMr²r\r³cóL—||_||_||_||_||_dS)z+ Initialize a new instance N)r±rMr²r\r³)r^r±rMr²r\r³s r=r_zFetchInfo.__init__ns.€ðˆŒØˆŒ ؈Œ Ø$ˆŒØ.ˆÔÐÐr?có—|jSrA©rhrcs r=Ú__str__zFetchInfo.__str__ó €ØŒyÐr?có—|jjS)z:return: Name of our remote ref)r±rhrcs r=rhzFetchInfo.name‚s€ðŒxŒ}Ðr?có—|jjS)z!:return: Commit of our remote ref)r±rbrcs r=rbzFetchInfo.commit‡s€ðŒxŒÐr?rar&rkÚ fetch_linecót—|j |¦«}|€td|z¦«‚| ¦«\}}}}} t t |¦«} | d¦«\} } } |  dd¦«\} } n%#t$r}td|z¦«|‚d}~wwxYwd} ||j|z}n(#t$r}td|›d |›�¦«|‚d}~wwxYwd}d }d |vr ||j z}d |vr ||j z}d }d|vr ||j z}d }d|vr ||j z}d|vsd|vr@d}|dkr |dd…}|  | |¦«d¦«}d}|dkrt}n:| dks|rt}n*| dvrt }nd| vrt"}nt%d| z¦«‚|tur ||d¦«}n¸d}| ¦«}| t*jdz¦«r5|}|tur)| t jdz¦«st*}n=|turd|vrt/t j|¦«}nt/|j|¦«}|||d ¬¦«}| r|  ¦«pd} |||| ||¦«S)a¢Parse information from the given line as returned by git-fetch -v and return a new FetchInfo object representing this information. We can handle a line as follows: "%c %-\*s %-\*s -> %s%s" Where c is either ' ', !, +, -, \*, or = ! means error + means success forcing update - means a tag was updated * means birth of new branch or tag = means the head was up to date ( and not moved ) ' ' means a fast-forward fetch line is the corresponding line from FETCH_HEAD, like acb0fa8b94ef421ad60c8507b634759a472cd56c not-for-merge branch '0.1.7RC' of /tmp/tmpya0vairemote_repoNzFailed to parse line: %rrmr(r9z#Failed to parse FETCH_HEAD line: %rrrorpFÚrejectedznew tagTz tag updatez new branchrsrtéÿÿÿÿÚ FETCH_HEADÚtag)zremote-trackingÚbranchrez Cannot handle reference type: %rztags/)Ú check_pathrZ)Ú_re_fetch_resultÚmatchriÚgroupsr!ÚflagKeyLiteralrurvrwrzr~r¹rÚ rev_parserrrrÚ TypeErrorÚstriprfrÚ_common_path_defaultr )r€rarkrÂrËr�Ú operationÚlocal_remote_refÚremote_local_ref_strr²Ú _new_hex_shaÚ_fetch_operationÚ fetch_noteÚ ref_type_namerƒrMr\Úis_tag_operationr‡Úref_typeÚremote_local_refÚref_paths r=rŠzFetchInfo._from_lineŒs €ð$Ô$×*Ò*¨4Ñ0Ô0ˆØ ˆ=ÝÐ7¸$Ñ>Ñ?Ô?Ð ?ð �LŠL‰NŒNñ  Ø Ø Ø Ø Ø õ!¥Ð1BÑCÔCÐð XØ9C×9IÒ9IÈ$Ñ9OÔ9OÑ 6ˆLÐ*¨JØ(2×(8Ò(8¸¸aÑ(@Ô(@Ñ %ˆM˜:˜:øÝð Xð Xð XÝÐBÀZÑOÑPÔPÐVWÐ Wøøøøð Xøøøðˆð wØ �S”]Ð#4Ô5Ñ 5ˆEˆEøÝð wð wð wÝ�*ÐVgÐVgÐVgÐimÐimÐnÑoÔoÐuvÐ vøøøøð wøøøð /3ˆ Ø ÐØ ˜Ð "Ð "Ø �S”\Ñ !ˆEØ ˜ Ð !Ð !Ø �S”[Ñ ˆEØ#Ð Ø ˜9Ð $Ð $Ø �S”^Ñ #ˆEØ#Ð Ø ˜9Ð $Ð $Ø �S”\Ñ !ˆEØ �IÐ Ð  ¨Ð!2Ð!2؈KØ  CÒ'Ð'Ø)¨#¨2¨#Ô.� ØŸš¨ ¯ª¸ Ñ(DÔ(DÀQÔ(GÑHÔHˆJð7;ˆØ  <Ò /Ð /Ý(ˆHˆHØ ˜eÒ #Ð #Ð'7Ð #õ$ˆHˆHØ Ð;Ð ;Ð ;õ'ˆHˆHØ �MÐ !Ð !õˆHˆHåÐ>ÀÑNÑOÔOÐ Oð Õ(Ð (Ð (Ø'˜x¨¨lÑ;Ô;Ð Ð ð,0ˆHØ#7×#=Ò#=Ñ#?Ô#?Ð à#×.Ò.­yÔ/MÐPSÑ/SÑTÔTð Zð0�Ø¥<Ð/Ð/Ð8L×8WÒ8WÝ#Ô8¸3Ñ>ñ9ô9Ð/õ )�Høà�\Ð)Ð)¨gÐ9MÐ.MÐ.Må$¥_Ô%IÐK_Ñ`Ô`��å$ XÔ%BÐDXÑYÔY�ð (˜x¨¨hÀ5ÐIÑIÔIÐ ðÐ%˜Ÿš™œÐ,¨"ˆàˆsÐ# U¨D°*Ð>NÑOÔOÐOs0Á2B B4ÂB/Â/B4Â:C à C0ÃC+Ã+C0r‹r3có—t‚rAr�r�s r=r�zFetchInfo.iter_items r‘r?)rZNN))r’r“r”r•r–r—r˜r~rÚ HEAD_UPTODATEr¹rzršr›r}ÚreÚcompilerÊrvrrÍr�Ú__annotations__rŸr$rºrrgr r%rr#r_r¾ržrhrbrŠrrr�rBr?r=r1r1,s?€€€€€€ð ð ðJ€IØ €Nð #Ð"˜˜˜q™œÐ"Ñ"Ô"ñ ØØØØØØØØ ð"�r”zÐ"jÑkÔkÐðØ Ø Ø Ø Ø ð ,ð,€Iˆt�N CÐ'Ô(ððñð𘠜 ðððñ„[ðð6Ø.2Ø.2ð /ð/à ð/ðð/ðð /ð ˜* dÐ*Ô+ð /ð " (Ô+ð /ð ð/ð/ð/ð/ð"˜ðððððð�cðððñ„Xððð˜ ðððñ„Xððð}P˜fð}P¨Cð}P¸Sð}PÀ[ð}Pð}Pð}Pñ„[ð}Pð~ð"˜fð"¨Sð"¸Cð"ÀHð"ð"ð"ñ„[ð"ð"ð"r?r1cóô‡—eZdZdZdZdZdgZdgZddgZddde d d fd „Z d e d e fˆfd „ Z d e fd„Z d e d d fˆfd„ Zd e fd„Zd e fd„Zded efd„Zded efd„Zd efd„Zd efd„Zeddde de d edfd„¦«Z d?de dee dede d df d„Zd@de dede d dfd „Zde de d dfd!„Zed ee fd"„¦«Z ed e!e"fd#„¦«Z#ed e!e$fd$„¦«Z%ed@ddde de dede d df d%„¦«Z&eddde de de d df d&„¦«Z'eddde d e fd'„¦«Z(e(Z)d(e d dfd)„Z*de d dfd*„Z+ dAd+d,d-e,e-d.e fe.d fd/e,d e/fd e!d0fd1„Z0 dAd+d,d-e,e-d.e fe.d fd/e,d e/fd e1fd2„Z2dBd3„Z3 dCd5e,e e4e d fd-e,e.d d6fd7ed/e,d e/fded8ede d e!e5fd9„Z6 dDd5e,e e4e d fd-e,e.d6d fd/e,d e/fded8ede d e!e5fd:„Z7 dDd5e,e e4e d fd-e,e.d6e-d.e.fd fd/e,d e/fded8ede d e1fd;„Z8ed e9e:fd<„¦«Z;dBd=„Z„¦«Z=ˆxZ>S)Er2aHProvides easy read and write access to a git remote. Everything not part of this interface is considered an option for the current remote, allowing constructs like remote.pushurl to query the pushurl. NOTE: When querying configuration, the configuration accessor will be cached to speed up subsequent accesses.)rarhÚ_config_readerrhz --upload-packz--receive-packz--execrar&r6Ncó&—||_||_|dS)z�Initialize a remote instance :param repo: The repository we are a remote of :param name: the name of the remote, i.e. 'origin'N)rarh)r^rarhs r=r_zRemote.__init__/s€ð ˆŒ ؈Œ Ø ˆ ˆ ˆ r?Úattrcó•—|dkr(tt|¦« |¦«S |j |¦«S#t j$r+tt|¦« |¦«cYSwxYw)zrAllows to call this instance like remote.special( \*args, \*\*kwargs) to call git-remote special self.namerã)r¨r2Ú __getattr__rãÚgetrÚ NoOptionError©r^rårªs €r=rçzRemote.__getattr__8s�ø€ð Ð#Ò #Ð #Ý� Ñ&Ô&×2Ò2°4Ñ8Ô8Ð 8ð 9ØÔ&×*Ò*¨4Ñ0Ô0Ð 0øÝÔð 9ð 9ð 9Ý� Ñ&Ô&×2Ò2°4Ñ8Ô8Ð 8Ð 8Ð 8ð 9øøøs±A Á 7BÂBcó—d|jzS)Nz remote "%s"r½rcs r=Ú_config_section_namezRemote._config_section_nameFs€Ø˜tœyÑ(Ð(r?cóæ•—|dkrAt|j d¦«| ¦«¦«|_dSt t |¦« |¦«dS)NrãÚ repository)rraÚ config_readerrìrãr¨r2Ú _set_cache_rês €r=rðzRemote._set_cache_Isjø€Ø Ð#Ò #Ð #õ#4°D´I×4KÒ4KÈLÑ4YÔ4YÐ[_×[tÒ[tÑ[vÔ[vÑ"wÔ"wˆDÔ Ð Ð å •&˜$Ñ Ô × +Ò +¨DÑ 1Ô 1Ð 1Ð 1Ð 1r?có—|jSrAr½rcs r=r¾zRemote.__str__Qr¿r?có2—d|jj›d|j›d�S)Nz)rªr’rhrcs r=Ú__repr__zRemote.__repr__Ts €€Ø"&¤.Ô"9Ð"9Ð"9¸4¼9¸9¸9ÐEÐEr?Úothercó\—t|t|¦«¦«o|j|jkSrA)Ú isinstanceÚtyperh©r^rôs r=Ú__eq__z Remote.__eq__Ws&€Ý˜%¥ d¡¤Ñ,Ô,ÐH°´¸e¼jÒ1HÐHr?có—||k SrArBrøs r=Ú__ne__z Remote.__ne__Zs€Ø˜E’MÐ"Ð"r?có*—t|j¦«SrA)Úhashrhrcs r=Ú__hash__zRemote.__hash__]s€Ý�D”I‰ŒÐr?cóŠ— |j d¦«dS#tj$rYdStj$rYdSwxYw)z… :return: True if this is a valid, existing remote. Valid remotes have an entry in the repository's configurationÚurlTF)rïrèrréÚNoSectionErrorrcs r=Úexistsz Remote.exists`sd€ð Ø Ô × "Ò " 5Ñ )Ô )Ð )Ø�4øÝÔð ð ð à�4�4ÝÔ ð ð ð Ø�5�5ð øøøs‚žA°AÁAr‹r3c/óTK—| d¦« ¦«D]}}| d¦«sŒ| d¦«}| d¦«}|dks|dkrt d|z¦«‚t |||dz|…¦«V—Œ~dS)zA:return: Iterator yielding Remote objects of the given repositoryrîzremote ú"rÅz%Remote-Section has invalid format: %rr9N)rïÚsectionsrfÚfindÚrfindrir2)r€rar‹r3ÚsectionÚlboundÚrbounds r=r�zRemote.iter_itemsnsÂèè€ð×)Ò)¨,Ñ7Ô7×@Ò@ÑBÔBð =ð =ˆGØ×%Ò% iÑ0Ô0ð ØØ—\’\ #Ñ&Ô&ˆFØ—]’] 3Ñ'Ô'ˆFؘŠ|ˆ|˜v¨š|˜|Ý Ð!HÈ7Ñ!RÑSÔSÐSݘ˜w v°¡z°FÐ':Ô;Ñ<Ô<Ð <Ð <Ð <Ð <ð =ð =r?FÚnew_urlÚold_urlÚallow_unsafe_protocolsc óÈ—|stj|¦«d}||d<|r"|jjj|d|j||fi|¤Žn |jjj|d|j|fi|¤Ž|S)a€Configure URLs on current remote (cf command git remote set_url) This command manages URLs on the remote. :param new_url: string being the URL to add as an extra remote URL :param old_url: when set, replaces this URL with new_url for the remote :param allow_unsafe_protocols: Allow unsafe protocols to be used, like ext :return: self zset-urlÚinsert_kwargs_afterú--)rÚcheck_unsafe_protocolsrar4r[rh)r^r r r r3Úscmds r=Úset_urlzRemote.set_url{sŽ€ð&ð 0Ý Ô & wÑ /Ô /Ð /؈Ø(,ˆÐ$Ñ%Ø ð KØ ˆDŒIŒMÔ   t¨T¬Y¸ÀÐ SÐ SÈFÐ SÐ SÐ SÐ Sà ˆDŒIŒMÔ   t¨T¬Y¸Ð JÐ JÀ6Ð JÐ JÐ J؈ r?rc ó2—| |d|¬¦«S)a|Adds a new url on current remote (special case of git remote set_url) This command adds new URLs to a given remote, making it possible to have multiple URLs for a single remote. :param url: string being the URL to add as an extra remote URL :param allow_unsafe_protocols: Allow unsafe protocols to be used, like ext :return: self T)Úaddr ©r)r^rr r3s r=Úadd_urlzRemote.add_url‘s€ð�|Š|˜C TÐBXˆ|ÑYÔYÐYr?c ó0—| |d¬¦«S)a+Deletes a new url on current remote (special case of git remote set_url) This command deletes new URLs to a given remote, making it possible to have multiple URLs for a single remote. :param url: string being the URL to delete from the remote :return: self T)Údeleter)r^rr3s r=Ú delete_urlzRemote.delete_url�s€ð�|Š|˜C¨ˆ|Ñ-Ô-Ð-r?c#ó4‡K— |jj dd|j¦«}t |t ¦«sJ‚| d¦«D]}|V—Œd S#t$�r,}dt |¦«v�r |jj d|j¦«}t |t ¦«sJ‚| d¦«D]#}d|vr| d¦«dV—Œ$n’#t$rƒŠtˆfd „d D¦«¦«r\|jj  d d |jz¦«}t |t ¦«sJ‚| d¦«D]}|V—Œn‰‚Yd Š‹nd Š‹wwxYw|‚Yd }~d SYd }~d Sd }~wwxYw)zL:return: Iterator yielding all configured URL targets on a remote as stringszget-urlz--allú zUnknown subcommand: get-urlÚshowz Push URL:z: rÅc3ó:•K—|]}|t‰¦«vV—ŒdSrA)rg)rUÚmsgÚ_exs €r=ú zRemote.urls..¾s-øèè€ÐbÐb¨s˜3¥# c¡(¤(˜?ÐbÐbÐbÐbÐbÐbr?)zcorrect access rightszcannot run sshz --get-allz remote.%s.urlN) rar4r[rhrörgrurÚanyÚconfig)r^Úremote_detailsrkÚexr s @r=Úurlsz Remote.urls¨s3øèè€ð Ø!œYœ]×1Ò1°)¸WÀdÄiÑPÔPˆNݘn­cÑ2Ô2Ð 2Ð 2Ð2Ø&×,Ò,¨TÑ2Ô2ð ð �Ø� � � � ð ð øåð ñ ð ð -µ°B±´Ð7Ñ7ð"Ø%)¤Y¤]×%9Ò%9¸&À$Ä)Ñ%LÔ%L�NÝ% nµcÑ:Ô:Ð:Ð:Ð:Ø .× 4Ò 4°TÑ :Ô :ð7ð7˜Ø)¨TÐ1Ð1Ø"&§*¢*¨TÑ"2Ô"2°2Ô"6Ð6Ð6Ð6øð7øõ'ð"ð"ð"ÝÐbÐbÐbÐbÐ6aÐbÑbÔbÑbÔbð"à)-¬¬×)=Ò)=¸kÈ?Ð]aÔ]fÑKfÑ)gÔ)g˜Ý)¨.½#Ñ>Ô>Ð>Ð>Ð>Ø$2×$8Ò$8¸Ñ$>Ô$>ð'ð'˜DØ"&˜J˜J˜J˜Jð'ð"˜ ð'ð'ð'ð'ð'øøøøð "øøøð�ð7ð7ð7ð7ð7ð7ð'ð'ð'ð'ð'ð'øøøøð% øøøsD…AA Á FÁ+FÁ>A5C4Ã3FÃ4 FÃ>A9E<Å7FÅ<FÆFÆFcó°—ttjd|jz¦«}| tj|j|j¬¦«¦«|S)zî :return: IterableList of RemoteReference objects. It is prefixed, allowing you to omit the remote path portion, i.e.:: remote.refs.master # yields RemoteReference('/refs/remotes/origin/master')ú%s/)r[)r rr—rhÚextendÚ list_itemsra)r^Úout_refss r=Úrefsz Remote.refsÉsK€õ3?½Ô?]Ð_dÐgkÔgpÑ_pÑ2qÔ2qˆØ�Š�Ô2°4´9ÀTÄYÐOÑOÔOÑPÔPÐP؈r?có4—ttjd|jz¦«}|jj dd|¦« ¦«dd…D]¹}d}| |¦«sŒ|  |d¦«}| tj dz¦«r.|  tj |j|¦«¦«Œ€tj ›d|›�}|  t|j|¦«¦«Œº|S) a± :return: IterableList RemoteReference objects that do not have a corresponding head in the remote reference anymore as they have been deleted on the remote side, but are still available locally. The IterableList is prefixed, hence the 'origin' must be omitted. See 'refs' property for an example. To make things more complicated, it can be possible for the list to include other kinds of references, for example, tag references, if these are stale as well. This is a fix for the issue described here: https://github.com/gitpython-developers/GitPython/issues/260 r(Úprunez --dry-runr8Nz * [would prune] rZre)r rr—rhrar4r[Ú splitlinesrfÚreplacerrÑÚappendry)r^r+rkÚtokenÚref_nameÚfqhns r=Ú stale_refszRemote.stale_refsÔs€õ -9½Ô9WÐY^ÐaeÔajÑYjÑ,kÔ,kˆØ”I”M×(Ò(¨°+¸tÑDÔD×OÒOÑQÔQÐRSÐRTÐRTÔUð Bð BˆDð(ˆEØ—?’? 5Ñ)Ô)ð ØØ—|’| E¨2Ñ.Ô.ˆHà×"Ò"¥9Ô#AÀCÑ#GÑHÔHð BØ—’¥ Ô 3°D´I¸xÑ HÔ HÑIÔIÐIÐIå"1Ô"FÐ"FÐ"FÈÈÐQ�Ø—’¥°´ ¸4Ñ @Ô @ÑAÔAÐAÐAðˆr?c ó¨—d}||d<tj|¦«}|stj|¦«|jj|d||fi|¤Ž|||¦«S)aCreate a new remote to the given repository :param repo: Repository instance that is to receive the new remote :param name: Desired name of the remote :param url: URL which corresponds to the remote's name :param allow_unsafe_protocols: Allow unsafe protocols to be used, like ext :param kwargs: Additional arguments to be passed to the git-remote add command :return: New Remote instance :raise GitCommandError: in case an origin with that name already existsrrr)rÚ polish_urlrr4r[)r€rarhrr r3rs r=Úcreatez Remote.createösn€ðˆØ(,ˆÐ$Ñ%ÝŒn˜SÑ!Ô!ˆØ%ð ,Ý Ô & sÑ +Ô +Ð +؈ŒŒ˜˜d D¨#Ð8Ð8°Ð8Ð8Ð8؈s�4˜‰ŒÐr?c ó"—|j|||fi|¤ŽSrA)r8)r€rarhrr3s r=rz Remote.add s €àˆsŒz˜$  cÐ4Ð4¨VÐ4Ð4Ð4r?có„—|j d|¦«t||¦«r| ¦«|S)zaRemove the remote with the given name :return: the passed remote name to remove Úrm)r4r[röÚ _clear_cache)r€rarhs r=Úremovez Remote.removesC€ð Œ�Š˜˜dÑ#Ô#Ð#Ý �d˜CÑ Ô ð Ø × Ò Ñ Ô Ð Øˆ r?Únew_namecó¢—|j|kr|S|jj d|j|¦«||_| ¦«|S)z8Rename self to the given new_name :return: selfÚrename)rhrar4r[r<)r^r>s r=r@z Remote.renamesR€ð Œ9˜Ò Р؈Kà Œ Œ ×Ò˜X t¤y°(Ñ;Ô;Ð;؈Œ Ø ×ÒÑÔÐàˆ r?c óP—d}||d<|jjj||jfi|¤Ž|S)a(Fetch all changes for this remote, including new branches which will be forced in ( in case your local remote branch is not part the new remote branches ancestry anymore ). :param kwargs: Additional arguments passed to git-remote update :return: selfÚupdater)rar4r[rh)r^r3rs r=rBz Remote.update)s<€ðˆØ(,ˆÐ$Ñ%؈Œ Œ Ô˜T 4¤9Ð7Ð7°Ð7Ð7Ð7؈ r?ÚproczGit.AutoInterruptr5.Úkill_after_timeoutr1có8—t|¦«}td¦«}g}ttj ¦«¦«}| ¦«}t|d|dd|¬¦«|jrd  |j¦«pd}|  |¬¦«|rt  d|¦«|j D]W} t| ¦«} |D]C} t| ¦«dkr.| d d kr"| d| kr| | ¦«ŒCŒDŒXt#|jd ¦«} t'| jd ¦«5} d „|  ¦«D¦«} ddd¦«n #1swxYwYt|¦«}t| ¦«}||krÂd}|dz }|dz }|||fz}t |¦«t dt/|¦« d¦«z¦«t dt/| ¦« d¦«z¦«||kr | d|…} n |d|…}t3|| ¦«D]™\}} | t |j||¦«¦«Œ;#t6$rR}t d|¦«t  d| ¦«¦«Yd}~Œ’d}~wwxYw|S)NrhF©Ú finalizerÚdecode_streamsrDrrZ©Ústderrú'Error lines received while fetching: %sr9rr(rÆÚrbcóB—g|]}| t¦«‘ŒSrB)Údecoder)rUrks r=rWz6Remote._get_fetch_info_from_stderr..ds$€ÐNÐNÐN°t˜tŸ{š{­6Ñ2Ô2ÐNÐNÐNr?zFFetch head lines do not match lines provided via progress information zKlength of progress lines %i should be equal to lines in FETCH_HEAD file %i z5Will ignore extra progress lines or fetch head lines.s info lines: zUTF-8s head info: z#Caught error while parsing line: %szGit informed while fetching: %s)rDr Úsetr1rvÚkeysÚnew_message_handlerrÚ error_linesÚjoinÚwaitÚlogÚwarningÚ other_linesrÚlenr1rraÚopenÚabspathÚ readlinesÚdebugrgÚencodeÚziprŠrirÐ)r^rCr5rDÚoutputÚfetch_info_linesÚcmdsÚprogress_handlerÚ stderr_textrkÚcmdÚ fetch_headÚfpÚfetch_head_infoÚl_filÚl_fhirÚerr_linerÂÚexcs r=Ú_get_fetch_info_from_stderrz"Remote._get_fetch_info_from_stderr7sŒ€õ(¨Ñ1Ô1ˆõ-9¸Ñ,@Ô,@ˆð Ðõ•9Ô&×+Ò+Ñ-Ô-Ñ.Ô.ˆà#×7Ò7Ñ9Ô9ÐÝØ Ø Ø ØØ Ø1ð  ñ ô ð ðÔ*ÐN¨t¯yªy¸Ô9MÑ/NÔ/NÐTÐRTˆ Ø � Š ˜ˆ Ñ%Ô%Ð%Ø ð PÝ �KŠKÐAÀ;Ñ OÔ OÐ OàÔ(ð ð ˆDݘdÑ#Ô#ˆDØð ð �Ý�t‘9”9˜q’=�= T¨!¤W°¢^ ^¸¸Q¼À3º¸Ø$×+Ò+¨DÑ1Ô1Ð1Øøð õ ' t¤y°,Ñ?Ô?ˆ Ý �*Ô$ dÑ +Ô +ð O¨rØNÐN¸r¿|º|¹~¼~ÐNÑNÔNˆOð Oð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð OõÐ$Ñ%Ô%ˆÝ�OÑ$Ô$ˆØ �EŠ>ˆ>Ø[ˆCØ ÐaÑ aˆCØ ÐJÑ JˆCØ �E˜5�>Ñ !ˆCÝ �IŠI�c‰NŒNˆNÝ �IŠI�o­Ð,<Ñ(=Ô(=×(DÒ(DÀWÑ(MÔ(MÑMÑ NÔ NÐ NÝ �IŠI�n¥s¨?Ñ';Ô';×'BÒ'BÀ7Ñ'KÔ'KÑKÑ LÔ LÐ LØ�uŠ}ˆ}Ø"1°&°5°&Ô"9��à#3°F°U°FÔ#;Ð õ%(Ð(8¸/Ñ$JÔ$Jð Qð QÑ ˆH�jð QØ— ’ �i×2Ò2°4´9¸hÈ ÑSÔSÑTÔTÐTÐTøÝð Qð Qð QÝ— ’ Ð?ÀÑEÔEÐEÝ— ’ Ð=¸x¿~º~Ñ?OÔ?OÑPÔPÐPÐPÐPÐPÐPÐPøøøøð Qøøøðˆ s+ÅE?Å?FÆFÊ4J;Ê; LËALÌLc󨇇—t|¦«}| ¦«}t¦«Šdtddfˆˆfd„ }t |||dd|¬¦«|jrd |j¦«pd} | |¬¦«n>#t$r1}‰s‚|r"t  d |¦«|‰_ Yd}~nd}~wwxYw‰S) Nrkr6c󈕗 ‰ t ‰|¦«¦«dS#t$rYdSwxYwrA)r1r0rŠri)rkr_r^s €€r=Ústdout_handlerz-Remote._get_push_info..stdout_handlerŽsRø€ð Ø— ’ �h×1Ò1°$¸Ñ=Ô=Ñ>Ô>Ð>Ð>Ð>øÝð ð ð à��ð øøøsƒ.3³ AÁAFrFrrZrIrK) rDrQr¡rgrrRrSrTÚ ExceptionrUrVr©) r^rCr5rDrbrorcrƒr_s ` @r=Ú_get_push_infozRemote._get_push_infos(øø€õ (¨Ñ1Ô1ˆð $×7Ò7Ñ9Ô9ÐÝ+™~œ~ˆð ¥ð ¨ð ð ð ð ð ð ð õ Ø Ø Ø ØØ Ø1ð  ñ ô ð ðÔ*ÐN¨t¯yªy¸Ô9MÑ/NÔ/NÐTÐRTˆ ð !Ø �IŠI˜[ˆIÑ )Ô )Ð )Ð )øÝð !ð !ð !ðð !ØØð !Ý— ’ ÐEÀ{ÑSÔSÐSØ �” øøøøøøøøøð !øøøðˆ sÁ=B CÂ'C à Ccóü—|j}d} | d|¬¦«|ur*d}|dz }|dz }t||j|jfz¦«‚ | ¦«dS#| ¦«wxYw)z>Turns out we can't deal with remotes if the refspec is missingÚ placeholderÚfetch)Údefaultz Remote '%s' has no refspec set. zYou can set it as follows:zA 'git config --add "remote.%s.fetch +refs/heads/*:refs/heads/*"'.N)rïÚ get_valueÚAssertionErrorrhÚrelease)r^r#Úunsetrs r=Ú_assert_refspeczRemote._assert_refspec«s�€àÔ#ˆØˆð Ø×Ò °ÐÑ7Ô7¸5Ð@Ð@Ø9�ØÐ3Ñ3�ØÐ\Ñ\�Ý$ S¨D¬I°t´yÐ+AÑ%AÑBÔBÐBð Að �NŠNÑ Ô Ð Ð Ð øˆF�NŠNÑ Ô Ð Ð øøøs ‹AA%Á%A;TÚrefspecr'ÚverboseÚallow_unsafe_optionsc ó2—|€| ¦«t||jj|¦«}t |t ¦«r|}n|g}|s|D]} | rt j| ¦«Œ|s:t jt |  ¦«¦«|j ¬¦«|jjj d|g|¢Rddd|dœ|¤Ž} |  | ||¬¦«} t|jjd¦«r|jj ¦«| S) aÃFetch the latest changes for this remote :param refspec: A "refspec" is used by fetch and push to describe the mapping between remote ref and local ref. They are combined with a colon in the format :, preceded by an optional plus sign, +. For example: git fetch $URL refs/heads/master:refs/heads/origin means "grab the master branch head from the $URL and store it as my origin branch head". And git push $URL refs/heads/master:refs/heads/to-upstream means "publish my master branch head as to-upstream branch at $URL". See also git-push(1). Taken from the git manual Fetch supports multiple refspecs (as the underlying git-fetch does) - supplying a list rather than a string for 'refspec' will make use of this facility. :param progress: See 'push' method :param verbose: Boolean for verbose output :param kill_after_timeout: To specify a timeout in seconds for the git command, after which the process should be killed. It is set to None by default. :param allow_unsafe_protocols: Allow unsafe protocols to be used, like ext :param allow_unsafe_options: Allow unsafe options to be used, like --upload-pack :param kwargs: Additional arguments to be passed to git-fetch :return: IterableList(FetchInfo, ...) list of FetchInfo instances providing detailed information about the fetch results :note: As fetch does not provide progress information to non-ttys, we cannot make it available here unfortunately as in the 'push' method.N©ÚoptionsÚunsafe_optionsrTF)Ú as_processÚ with_stdoutÚuniversal_newlinesr<©rDÚ update_cache)rzr>rar4röÚlistrrÚcheck_unsafe_optionsrPÚunsafe_git_fetch_optionsrtrlÚhasattrÚodbr†) r^r{r5r|rDr r}r3r‹r±rCÚress r=rtz Remote.fetch¸sJ€ðT ˆ?à × Ò Ñ "Ô "Ð "å˜f d¤i¤m°XÑ>Ô>ˆÝ �g�tÑ $Ô $ð Ø,3ˆDˆDà�9ˆDà%ð 4Øð 4ð 4�Øð4ÝÔ.¨sÑ3Ô3Ð3øà#ð pÝ Ô $­T°&·+²+±-´-Ñ-@Ô-@ÐQUÔQnÐ oÑ oÔ oÐ oà"ˆtŒyŒ}Ô"Ø �$ð Øð ð Ø*.¸EÐVZÐ^eð ð Øioð ð ˆð×.Ò.¨t°XÐRdÐ.ÑeÔeˆÝ �4”9”= .Ñ 1Ô 1ð )Ø ŒIŒM× &Ò &Ñ (Ô (Ð (؈ r?c ó —|€| ¦«t||jj|¦«}t j|pg¦«}|s|D]}t j|¦«Œ|s:t jt|  ¦«¦«|j ¬¦«|jjj d||fdddddœ|¤Ž}|  |||¬¦«} t|jjd¦«r|jj ¦«| S) a<Pull changes from the given branch, being the same as a fetch followed by a merge of branch with your local branch. :param refspec: see :meth:`fetch` method :param progress: see :meth:`push` method :param kill_after_timeout: see :meth:`fetch` method :param allow_unsafe_protocols: Allow unsafe protocols to be used, like ext :param allow_unsafe_options: Allow unsafe options to be used, like --upload-pack :param kwargs: Additional arguments to be passed to git-pull :return: Please see :meth:`fetch` methodNrrFT)rƒr‚r„r<r…r†)rzr>rar4rÚ _unpack_argsrrˆr‡rPÚunsafe_git_pull_optionsÚpullrlrŠr‹r†) r^r{r5rDr r}r3r±rCrŒs r=r�z Remote.pullüs,€ð& ˆ?à × Ò Ñ "Ô "Ð "ݘf d¤i¤m°XÑ>Ô>ˆåÔ" 7 =¨bÑ1Ô1ˆØ%ð 0Øð 0ð 0�ÝÔ*¨3Ñ/Ô/Ð/Ð/à#ð oÝ Ô $­T°&·+²+±-´-Ñ-@Ô-@ÐQUÔQmÐ nÑ nÔ nÐ nà!ˆtŒyŒ}Ô!Ø �$˜ð Ø-2¸tÐX\Ð`dð ð Øhnð ð ˆð×.Ò.¨t°XÐRdÐ.ÑeÔeˆÝ �4”9”= .Ñ 1Ô 1ð )Ø ŒIŒM× &Ò &Ñ (Ô (Ð (؈ r?c ó€—t||jj|¦«}tj|pg¦«}|s|D]}tj|¦«Œ|s:tjt| ¦«¦«|j ¬¦«|jjj d||fddd|dœ|¤Ž}|  |||¬¦«S)aoPush changes from source branch in refspec to target branch in refspec. :param refspec: see 'fetch' method :param progress: Can take one of many value types: * None to discard progress information * A function (callable) that is called with the progress information. Signature: ``progress(op_code, cur_count, max_count=None, message='')``. `Click here `__ for a description of all arguments given to the function. * An instance of a class derived from ``git.RemoteProgress`` that overrides the ``update()`` function. :note: No further progress information is returned after push returns. :param kill_after_timeout: To specify a timeout in seconds for the git command, after which the process should be killed. It is set to None by default. :param allow_unsafe_protocols: Allow unsafe protocols to be used, like ext :param allow_unsafe_options: Allow unsafe options to be used, like --receive-pack :param kwargs: Additional arguments to be passed to git-push :return: A ``PushInfoList`` object, where each list member represents an individual head which had been updated on the remote side. If the push contains rejected heads, these will have the PushInfo.ERROR bit set in their flags. If the operation fails completely, the length of the returned PushInfoList will be 0. Call ``.raise_if_error()`` on the returned object to raise on any failure.rrT)Ú porcelainr‚r„rDr…) r>rar4rrŽrrˆr‡rPÚunsafe_git_push_optionsÚpushrq) r^r{r5rDr r}r3r±rCs r=r”z Remote.push$sí€õL˜f d¤i¤m°XÑ>Ô>ˆåÔ" 7 =¨bÑ1Ô1ˆØ%ð 0Øð 0ð 0�ÝÔ*¨3Ñ/Ô/Ð/Ð/à#ð oÝ Ô $­T°&·+²+±-´-Ñ-@Ô-@ÐQUÔQmÐ nÑ nÔ nÐ nà!ˆtŒyŒ}Ô!Ø Ø Ø ð  ðØØ#Ø1ð  ð  ðð  ð  ˆð×"Ò" 4¨ÐFXÐ"ÑYÔYÐYr?có—|jS)z¿ :return: GitConfigParser compatible object able to read options for only our remote. Hence you may simple type config.get("pushurl") to obtain the information)rãrcs r=rïzRemote.config_reader`s €ð Ô"Ð"r?có.— |`dS#t$rYdSwxYwrA)rãÚAttributeErrorrcs r=r<zRemote._clear_cachehs5€ð ØÐ#Ð#Ð#øÝð ð ð Ø ˆDˆDð øøøs ‚† “có —|j ¦«}| ¦«t|| ¦«¦«S)aµ :return: GitConfigParser compatible object able to write options for this remote. :note: You can only own one writer at a time - delete it to release the configuration file and make it usable by others. To assure consistent results, you should only query options through the writer. Once you are done writing, you are free to use the config reader once again.)raÚ config_writerr<rrì)r^Úwriters r=r™zRemote.config_writerosG€ð”×(Ò(Ñ*Ô*ˆð ×ÒÑÔÐÝ  ¨×)BÒ)BÑ)DÔ)DÑEÔEÐEr?)NF)FrAr­)NNTNFF)NNNFF)?r’r“r”r•r–r—r‰r�r“rgr_rrçrìrðr¾róÚobjectÚboolrùrûr�rþrrŸrr�rrrrržr&r rr,rr5r8rr=r;r@rBr rr Úfloatrlr¡rqrzrr1rtr�r”rrrïr<r™r®r¯s@r=r2r2s›ø€€€€€ð(ð(ð3€IØ€Nð ð Ðð ðÐð Øð Ðð˜Vð¨3ð°4ððððð 9 ð 9¨ð 9ð 9ð 9ð 9ð 9ð 9ð) cð)ð)ð)ð)ð2 ð2¨ð2ð2ð2ð2ð2ð2ð˜ðððððF˜#ðFðFðFðFðI˜FðI tðIðIðIðIð#˜Fð# tð#ð#ð#ð#ð˜#ððððð ˜ð ð ð ð ðð =˜fð =¨Sð =¸Cð =ÀHÈXÔDVð =ð =ð =ñ„[ð =ð[`ððØðØ%-¨c¤]ðØSWðØknðà ððððð, Zð Z˜3ð Z¸ð ZÐPSð ZÐX`ð Zð Zð Zð Zð .˜cð .¨Sð .°Xð .ð .ð .ð .ðð�h˜s”mðððñ„Xðð@ð�l ?Ô3ðððñ„Xððð˜L¨Ô3ðððñ„XððBðð˜&ð¨ð°#ðÈtðÐgjðÐowðððñ„[ðð&ð5�vð5 Sð5¨sð5¸cð5Àhð5ð5ð5ñ„[ð5ðð˜&ð¨ð°ðððñ„[ðð €Bð ˜sð  xð ð ð ð ð ˜sð  xð ð ð ð ð$26ð FðFà!ðF𘠠c Ô*¨N¸DÐ@ÔAðFð" $¨ +Ô.ð Fð �kÔ "ð FðFðFðFðX26ð *ð*à!ð*𘠠c Ô*¨N¸DÐ@ÔAð*ð" $¨ +Ô.ð *ð ð *ð*ð*ð*ðX ð ð ð ð04ØBFØØ15Ø',Ø%*ðBðBà�s˜D œI tÐ+Ô,ðBð˜¨Ð.>Ð>Ô?ðBðð Bð " $¨ +Ô.ð Bð !%ð Bð#ðBððBð �iÔ ðBðBðBðBðL04ØBFØ15Ø',Ø%*ð &ð&à�s˜D œI tÐ+Ô,ð&ð˜Ð(8¸$Ð>Ô?ð&ð" $¨ +Ô.ð &ð !%ð &ð #ð &ðð&ð �iÔ ð&ð&ð&ð&ðT04ØaeØ15Ø',Ø%*ð :Zð:Zà�s˜D œI tÐ+Ô,ð:Zð˜Ð(8¸(À3ÈÐCVÔ:WÐY]Ð]Ô^ð:Zð" $¨ +Ô.ð :Zð !%ð :Zð #ð :Zðð:Zð ð:Zð:Zð:Zð:Zðxð#Ð0°ÔAð#ð#ð#ñ„Xð#ððððððFÐ0ðFðFðFñ„XðFðFðFðFðFr?r2)>ÚloggingrßÚgit.cmdrrÚ git.compatrrÚgit.excrÚgit.utilrr r r r r Ú git.configrrrÚgit.refsrrrrrÚtypingrrrrrrrrrrr r!r"Ú git.typesr#r$r%Ú git.repo.baser&Úgit.objects.submodule.baser'rÍÚ getLoggerrUÚ addHandlerÚ NullHandlerÚ__all__r>rDr›r0r¡r1r2rBr?r=úr­sTðð€€€Ø € € € à.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ø)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø#Ð#Ð#Ð#Ð#Ð#ððððððððððððððððððððððððððððððð WÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVððððððððððððððððððððððððððððððð 4Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3àð:Ø"Ð"Ð"Ð"Ð"Ð"Ø9Ð9Ð9Ð9Ð9Ð9ð Ð?Ô@€ð€gÔ˜ Ñ%Ô%€Ø‡‚Ð"ˆwÔ"Ñ$Ô$Ñ%Ô%Ð%ð @€ð Ø ðà ðð�NÐ$4°h¸sÀNÐ?RÔ6SÐUYÐYÔZðð ð ðððð* ð 4ð¨Nðððñ „ðð ð 8¨C°¨HÔ#5ðÐ:Pðððñ „ðð ð >ð°nðððñ „ððØ�H˜S #˜XÔ&¨¸Ð<Ô=ðà ˆ>Ð1Ð 1Ô2ððððð$R"ðR"ðR"ðR"ðR"ˆ{˜FñR"ôR"ðR"ðjðððð�< Ô)ñôðð(b"ðb"ðb"ðb"ðb"� ˜Vñb"ôb"ðb"ðJm Fðm Fðm Fðm Fðm FˆY˜ ñm Fôm Fðm Fðm Fðm Fr?