Ë ‚Ö¦i™mãóp—dZddlZddlZddlZddlZddlZddlZddlmZ ejdvrddl m Z ndZ ddlZddlmZmZmZmZhd£Zeed«r6ej+ej,«ej+ej.«d ZeZeed «xsej4j6ZeZd.d „Ze d/d „«Z d „Z! ejDZ" ejHZ$Gd„dejN¬«Z(ejPjSe(«Gd„de(«Z*ejTjSe*«ddl+m,Z,e*jSe,«Gd„de(«Z-ejZjSe-«Gd„de-«Z.Gd„de-«Z/Gd„de.«Z0Gd„de.«Z1Gd „d!e-«Z2Gd"„d#e1e0«Z3Gd$„d%e*«Z,Gd&„d'e(«Z4ejhjSe4«Gd(„d)ejj«Z6Gd*„d+e4«Z7Gd,„d-e7«Z8y#e#$re!Z"Y�ŒKwxYw#e#$rGd„de%e&«Z$Y�ŒVwxYw)0z) Python implementation of the io module. éN)Ú allocate_lock>Úwin32Úcygwin)Úsetmode)Ú__all__ÚSEEK_SETÚSEEK_CURÚSEEK_END>rééÚ SEEK_HOLEi Úgettotalrefcountcó¸—|€Wtjjrd}nd}tjjrddl}|j dt |dz«|S)a A helper function to choose the text encoding. When encoding is not None, this function returns it. Otherwise, this function returns the default text encoding (i.e. "locale" or "utf-8" depends on UTF-8 mode). This function emits an EncodingWarning if *encoding* is None and sys.flags.warn_default_encoding is true. This can be used in APIs with an encoding=None parameter that pass it to TextIOWrapper or open. However, please consider using encoding="utf-8" for new APIs. Núutf-8Úlocalerz"'encoding' argument not specified.r )ÚsysÚflagsÚ utf8_modeÚwarn_default_encodingÚwarningsÚwarnÚEncodingWarning)ÚencodingÚ stacklevelrs ú/usr/lib64/python3.12/_pyio.pyÚ text_encodingr+sN€ðÐÜ �9‰9× Ò Ø‰HàˆHÜ �9‰9× *Ò *Û Ø �M‰MÐ>Ü)¨:¸©>ô ;à €Oócó—t|t«stj|«}t|tt tf«st d|z«‚t|t«st d|z«‚t|t«st d|z«‚|�t|t«st d|z«‚|�t|t«st d|z«‚t|«}|td«z st|«t|«kDrtd|z«‚d|v} d |v} d |v} d |v} d |v} d |v}d|v}|r |r td«‚| | z| z| zdkDr td«‚| s| s| s | s td«‚|r |� td«‚|r |� td«‚|r |� td«‚|r |dk(rddl }|jdtd«t|| xrdxsd| xrd xsdz| xrd xsdz| xrd xsdz| xrd xsdz||¬«}|} d}|dk(s|dkr|j«rd}d}|dkr 1 to indicate the size of a fixed-size chunk buffer. When no buffering argument is given, the default buffering policy works as follows: * Binary files are buffered in fixed-size chunks; the size of the buffer is chosen using a heuristic trying to determine the underlying device's "block size" and falling back on `io.DEFAULT_BUFFER_SIZE`. On many systems, the buffer will typically be 4096 or 8192 bytes long. * "Interactive" text files (files for which isatty() returns True) use line buffering. Other text files use the policy described above for binary files. encoding is the str name of the encoding used to decode or encode the file. This should only be used in text mode. The default encoding is platform dependent, but any encoding supported by Python can be passed. See the codecs module for the list of supported encodings. errors is an optional string that specifies how encoding errors are to be handled---this argument should not be used in binary mode. Pass 'strict' to raise a ValueError exception if there is an encoding error (the default of None has the same effect), or pass 'ignore' to ignore errors. (Note that ignoring encoding errors can lead to data loss.) See the documentation for codecs.register for a list of the permitted encoding error strings. newline is a string controlling how universal newlines works (it only applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works as follows: * On input, if newline is None, universal newlines mode is enabled. Lines in the input can end in '\n', '\r', or '\r\n', and these are translated into '\n' before being returned to the caller. If it is '', universal newline mode is enabled, but line endings are returned to the caller untranslated. If it has any of the other legal values, input lines are only terminated by the given string, and the line ending is returned to the caller untranslated. * On output, if newline is None, any '\n' characters written are translated to the system default line separator, os.linesep. If newline is '', no translation takes place. If newline is any of the other legal values, any '\n' characters written are translated to the given string. closedfd is a bool. If closefd is False, the underlying file descriptor will be kept open when the file is closed. This does not work when a file name is given and must be True in that case. The newly created file is non-inheritable. A custom opener can be used by passing a callable as *opener*. The underlying file descriptor for the file object is then obtained by calling *opener* with (*file*, *flags*). *opener* must return an open file descriptor (passing os.open as *opener* results in functionality similar to passing None). open() returns a file object whose type depends on the mode, and through which the standard file operations such as reading and writing are performed. When open() is used to open a file in a text mode ('w', 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open a file in a binary mode, the returned class varies: in read binary mode, it returns a BufferedReader; in write binary and append binary modes, it returns a BufferedWriter, and in read/write mode, it returns a BufferedRandom. It is also possible to use a string or bytearray as a file for both reading and writing. For strings StringIO can be used like a file opened in a text mode, and for bytes a BytesIO can be used like a file opened in a binary mode. zinvalid file: %rzinvalid mode: %rzinvalid buffering: %rNúinvalid encoding: %rúinvalid errors: %rzaxrwb+tÚxÚrÚwÚaÚ+ÚtÚbz'can't have text and binary mode at oncer z)can't have read/write/append mode at oncez/must have exactly one of read/write/append modez-binary mode doesn't take an encoding argumentz+binary mode doesn't take an errors argumentz+binary mode doesn't take a newline argumentrzaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be usedr Ú)ÚopenerFéÿÿÿÿTzinvalid buffering sizezcan't have unbuffered text I/Ozunknown mode: %r)Ú isinstanceÚintÚosÚfspathÚstrÚbytesÚ TypeErrorÚsetÚlenÚ ValueErrorrrÚRuntimeWarningÚFileIOÚisattyÚDEFAULT_BUFFER_SIZEÚfstatÚfilenoÚ st_blksizeÚOSErrorÚAttributeErrorÚBufferedRandomÚBufferedWriterÚBufferedReaderrÚ TextIOWrapperÚmodeÚclose)ÚfilerBÚ bufferingrÚerrorsÚnewlineÚclosefdr)ÚmodesÚcreatingÚreadingÚwritingÚ appendingÚupdatingÚtextÚbinaryrÚrawÚresultÚline_bufferingÚbsÚbuffers rÚopenrVLsz€ôn �dœCÔ Ü�y‰y˜‹ˆÜ �dœS¤%¬Ð-Ô .ÜÐ*¨TÑ1Ó2Ð2Ü �dœCÔ ÜÐ*¨TÑ1Ó2Ð2Ü �i¤Ô %ÜÐ/°)Ñ;Ó<Ð<ØÐ¤J¨x¼Ô$=ÜÐ.°Ñ9Ó:Ð:Ø Ð¤*¨V´SÔ"9ÜÐ,¨vÑ5Ó6Ð6Ü �‹I€EØ Œs�9‹~Ò¤ T£¬S°«ZÒ!7ÜÐ+¨dÑ2Ó3Ð3Ø�eˆ|€HØ�Uˆl€GØ�Uˆl€GØ�u� €IØ�eˆ|€HØ �%ˆ<€DØ �Eˆ\€FÙ ‘ÜÐBÓCÐCØ�'јGÑ# iÑ/°!Ò3ÜÐDÓEÐEÙ ™¡7©iÜÐJÓKÐKÙ �(Ð&ÜÐHÓIÐIÙ �&Ð$ÜÐFÓGÐGÙ �'Ð%ÜÐFÓGÐGÙ �)˜q’.ÛØ� ‰ ðCä$ aô )ô �ØÒ"˜sÒ( bØ’/˜cÒ' Rñ)à’/˜cÒ' Rñ)ðÒ# Ò) rñ+ðÒ"˜sÒ( bñ *ð  ô  )€Cð€Fð&ØˆØ ˜Š>˜Y¨š]¨s¯z©z¬|؈IØ!ˆNØ �qŠ=Ü+ˆIð #Ü—X‘X˜cŸj™j›lÓ+×6Ñ6�ð˜’6Ø "‘IØ �qŠ=ÜÐ5Ó6Ð 6Ø ˜Š>ÙØ� ÜÐ=Ó>Ð >Ù Ü# C¨Ó3‰FÙ ™¡IÜ# C¨Ó3‰FÙ Ü# C¨Ó3‰FäÐ/°$Ñ6Ó7Ð 7؈٠؈MÜ  Ó*ˆÜ˜V X¨v°wÀÓOˆØˆØˆŒ ؈ øô5œ^Ð,ò Ùð ûð6Ø� ‰ ŒØ ús=Ç5+K9È!-K$É K9É/AK9Ê?$K9Ë$K6Ë3K9Ë5K6Ë6K9Ë9L cóP—ddl}|jdtd«t|d«S)azOpens the provided file with mode ``'rb'``. This function should be used when the intent is to treat the contents as executable code. ``path`` should be an absolute path. When supported by the runtime, this function can be hooked in order to allow embedders more control over code files. This functionality is not supported on the current runtime. rNz(_pyio.open_code() may not be using hooksr Úrb)rrr5rV)Úpathrs rÚ_open_code_with_warningrZs(€óØ ‡M�MÐ<Ü  !ô%ä ��dÓ Ðrcó —eZdZy)ÚUnsupportedOperationN)Ú__name__Ú __module__Ú __qualname__©rrr\r\7s„Ø rr\có¾—eZdZdZd„Zdd„Zd„Zdd„Zd„ZdZ d „Z d „Z d „Z dd „Z d „Zdd„Zd„Zdd„Zed„«Zdd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd„Zdd„Zd„Zy)ÚIOBasea×The abstract base class for all I/O classes. This class provides dummy implementations for many methods that derived classes can override selectively; the default implementations represent a file that cannot be read, written or seeked. Even though IOBase does not declare read or write because their signatures will vary, implementations and clients should consider those methods part of the interface. Also, implementations may raise UnsupportedOperation when operations they do not support are called. The basic type used for binary data read from or written to a file is bytes. Other bytes-like objects are accepted as method arguments too. Text I/O classes work with str data. Note that calling any method (even inquiries) on a closed stream is undefined. Implementations may raise OSError in this case. IOBase (and its subclasses) support the iterator protocol, meaning that an IOBase object can be iterated over yielding the lines in a stream. IOBase also supports the :keyword:`with` statement. In this example, fp is closed after the suite of the with statement is complete: with open('spam.txt', 'r') as fp: fp.write('Spam and eggs!') cóL—t|jj›d|›d�«‚)z@Internal: raise an OSError exception for unsupported operations.Ú.z() not supported)r\Ú __class__r])ÚselfÚnames rÚ _unsupportedzIOBase._unsupported]s&€ä"Ø$(§N¡N×$;Ó$;ºTð$CóDð Drcó&—|jd«y)a$Change stream position. Change the stream position to byte offset pos. Argument pos is interpreted relative to the position indicated by whence. Values for whence are ints: * 0 -- start of stream (the default); offset should be zero or positive * 1 -- current stream position; offset may be negative * 2 -- end of stream; offset is usually negative Some operating systems / file systems could provide additional values. Return an int indicating the new absolute position. ÚseekN©rh©rfÚposÚwhences rrjz IOBase.seekds€ð ×ј&Õ!rcó&—|jdd«S)z5Return an int indicating the current stream position.rr )rj©rfs rÚtellz IOBase.tellts€à�y‰y˜˜A‹ÐrNcó&—|jd«y)zŒTruncate file to size bytes. Size defaults to the current IO position as reported by tell(). Return the new size. ÚtruncateNrk©rfrms rrszIOBase.truncatexó€ð ×ј*Õ%rcó$—|j«y)zuFlush write buffers, if applicable. This is not implemented for read-only and non-blocking streams. N©Ú _checkClosedrps rÚflushz IOBase.flush‚s€ð ×ÑÕrFcóf—|js |j«d|_yy#d|_wxYw)ziFlush and close the IO object. This method has no effect if the file is already closed. TN)Ú_IOBase__closedryrps rrCz IOBase.closeŒs0€ð �}Š}ð %Ø— ‘ ” à $�• ð øð!%�• úsŽ'§ 0có — |j}|rytr|j«y |j«y#t$rYywxYw#YyxYw)zDestructor. Calls close().N)Úclosedr=Ú_IOBASE_EMITS_UNRAISABLErC)rfr}s rÚ__del__zIOBase.__del__—sQ€ð Ø—[‘[ˆFñ Ø å #Ø �J‰J�Lð Ø— ‘ • øô#ò ñ ð ûð$ Ùús‚ :©A º AÁAÁ A có—y)z¿Return a bool indicating whether object supports random access. If False, seek(), tell() and truncate() will raise OSError. This method may need to do a test seek(). Fr`rps rÚseekablezIOBase.seekable²s€ð rcóJ—|j«st|€d«‚|«‚y)zEInternal: raise UnsupportedOperation if file is not seekable NzFile or stream is not seekable.)r�r\©rfÚmsgs rÚ_checkSeekablezIOBase._checkSeekableºó;€ð�}‰}ŒÜ&Ø*-¨+ð(Ió@ð @Ø;>ó@ð @ðrcó—y)zvReturn a bool indicating whether object was opened for reading. If False, read() will raise OSError. Fr`rps rÚreadablezIOBase.readableÁó€ð rcóJ—|j«st|€d«‚|«‚y)zEInternal: raise UnsupportedOperation if file is not readable NzFile or stream is not readable.)rˆr\rƒs rÚ_checkReadablezIOBase._checkReadableÈr†rcó—y)z†Return a bool indicating whether object was opened for writing. If False, write() and truncate() will raise OSError. Fr`rps rÚwritablezIOBase.writableÏr‰rcóJ—|j«st|€d«‚|«‚y)zEInternal: raise UnsupportedOperation if file is not writable NzFile or stream is not writable.)r�r\rƒs rÚ_checkWritablezIOBase._checkWritableÖr†rcó—|jS)z…closed: bool. True iff the file has been closed. For backwards compatibility, this is a property, not a predicate. )r{rps rr}z IOBase.closedÝs€ð �}‰}ÐrcóB—|jrt|€d«‚|«‚y)z7Internal: raise a ValueError if file is closed NúI/O operation on closed file.©r}r4rƒs rrxzIOBase._checkClosedås4€ð �;Š;ÜØ #  ð=ó6ð 6Ø14ó6ð 6ð rcó&—|j«|S)zCContext management protocol. Returns self (an instance of IOBase).rwrps rÚ __enter__zIOBase.__enter__îs€à ×ÑÔØˆ rcó$—|j«y)z+Context management protocol. Calls close()N)rC)rfÚargss rÚ__exit__zIOBase.__exit__ós €à � ‰ � rcó&—|jd«y)z’Returns underlying file descriptor (an int) if one exists. An OSError is raised if the IO object does not use a file descriptor. r:Nrkrps rr:z IOBase.filenoûs€ð ×ј(Õ#rcó$—|j«y)z{Return a bool indicating whether this is an 'interactive' stream. Return False if it can't be determined. Frwrps rr7z IOBase.isattys€ð ×ÑÔØrc󠇇—t‰d«rˆˆfd„}nd„}‰€dŠn ‰j}|«Št «}‰dkst |«‰kr[‰j |««}|s t|«S||z }|jd«r t|«S‰dkrŒLt |«‰krŒ[t|«S#t$rt‰›d�«‚wxYw)aNRead and return a line of bytes from the stream. If size is specified, at most size bytes will be read. Size should be an int. The line terminator is always b'\n' for binary files; for text files, the newlines argument to open can be used to select the line terminator(s) recognized. Úpeekcó”•—‰jd«}|sy|jd«dzxs t|«}‰dk\r t|‰«}|S)Nr ó r)rœÚfindr3Úmin)Ú readaheadÚnrfÚsizes €€rÚ nreadaheadz#IOBase.readline..nreadaheadsIø€Ø ŸI™I a›L� Ù ØØ—^‘^ EÓ*¨QÑ.ÒA´3°y³>�ؘ1’9ܘA˜t› �AØ�rcó—y©Nr r`r`rrr¤z#IOBase.readline..nreadahead!s€Ørr*ú is not an integerrrž) ÚhasattrÚ __index__r=r1Ú bytearrayr3ÚreadÚendswithr0)rfr£r¤Ú size_indexÚresr's`` rÚreadlinezIOBase.readline sÛù€ô �4˜Ô ö ò à ˆ<؉Dð $Ø!Ÿ^™^� ñ"“|�Ü‹kˆØ�QŠhœ#˜c›( Tš/Ø— ‘ ™*›,Ó'ˆAÙØô�S‹zÐð �1‰HˆCØ�|‰|˜EÔ"ØÜ�S‹zÐð�Q‹hœ#˜c›( T›/ô�S‹zÐøô"ò ?Ü 4 (Ð*<Ð =Ó>Ð>ð ?ús Ÿ B5Â5C có&—|j«|S©Nrwrps rÚ__iter__zIOBase.__iter__6s€Ø ×ÑÔØˆ rcó6—|j«}|st‚|Sr±)r¯Ú StopIteration©rfÚlines rÚ__next__zIOBase.__next__:s€Ø�}‰}‹ˆÙÜР؈ rcóŽ—|�|dkr t|«Sd}g}|D])}|j|«|t|«z }||k\sŒ(|S|S)zéReturn a list of lines from the stream. hint can be specified to control the number of lines read: no more lines will be read if the total size (in bytes/characters) of all lines so far exceeds hint. r)ÚlistÚappendr3)rfÚhintr¢Úlinesr¶s rÚ readlineszIOBase.readlines@s\€ð ˆ<˜4 1š9ܘ“:Ð Ø ˆØˆÛˆDØ �L‰L˜Ô Ø ”�T“‰NˆAØ�D‹yØØˆ ð ð ˆ rcóT—|j«|D]}|j|«Œy)z°Write a list of lines to the stream. Line separators are not added, so it is usual for each of the lines provided to have a line separator at the end. N)rxÚwrite)rfr¼r¶s rÚ writelineszIOBase.writelinesRs&€ð ×ÑÔÛˆDØ �J‰J�tÕ ñr©rr±©r*)r]r^r_Ú__doc__rhrjrqrsryr{rCrr�r…rˆr‹r�r�Úpropertyr}rxr•r˜r:r7r¯r²r·r½rÀr`rrrbrb;s›„ñò@Dó"ò ó&òð€Hò %òò6ó@òó@òó@ðñóðó6òò ò$òó(òTòó ó$rrb)Ú metaclasscó*—eZdZdZdd„Zd„Zd„Zd„Zy)Ú RawIOBasezBase class for raw binary I/O.có®—|€d}|dkr|j«St|j««}|j|«}|€y||d…=t |«S)zºRead and return up to size bytes, where size is an int. Returns an empty bytes object on EOF, or None if the object is set not to block and has no data to read. Nr*r)Úreadallrªr©Úreadintor0)rfr£r'r¢s rr«zRawIOBase.readmsZ€ð ˆ<؈DØ �!Š8Ø—<‘<“>Ð !Ü �d—n‘nÓ&Ó 'ˆØ �M‰M˜!Ó ˆØ ˆ9ØØ ˆa‰bˆEÜ�Q‹xˆrcóœ—t«}|jt«x}r||z }|jt«x}rŒ|r t|«S|S)z+Read until EOF, using multiple read() call.)rªr«r8r0)rfr®Údatas rrÉzRawIOBase.readall~sR€ä‹kˆØ—i‘iÔ 3Ó4Ð4ˆdÐ4Ø �4‰KˆCð—i‘iÔ 3Ó4Ð4ˆdÑ4á ܘ“:Ð ðˆKrcó&—|jd«y)zÓRead bytes into a pre-allocated bytes-like object b. Returns an int representing the number of bytes read (0 for EOF), or None if the object is set not to block and has no data to read. rÊNrk©rfr's rrÊzRawIOBase.readinto‰rurcó&—|jd«y)z˜Write the given buffer to the IO stream. Returns the number of bytes written, which may be less than the length of b in bytes. r¿NrkrÎs rr¿zRawIOBase.write‘s€ð ×ј'Õ"rNrÂ)r]r^r_rÃr«rÉrÊr¿r`rrrÇrÇ_s„á(óò" ò&ó#rrÇ)r6có>—eZdZdZd d„Zd d„Zd„Zd„Zd„Zd„Z d„Z y ) ÚBufferedIOBaseaBase class for buffered IO objects. The main difference with RawIOBase is that the read() method supports omitting the size argument, and does not have a default implementation that defers to readinto(). In addition, read(), readinto() and write() may raise BlockingIOError if the underlying raw stream is in non-blocking mode and not ready; unlike their raw counterparts, they will never return None. A typical implementation should not inherit from a RawIOBase implementation, but wrap one. có&—|jd«y)a¤Read and return up to size bytes, where size is an int. If the argument is omitted, None, or negative, reads and returns all data until EOF. If the argument is positive, and the underlying raw stream is not 'interactive', multiple raw reads may be issued to satisfy the byte count (unless EOF is reached first). But for interactive raw streams (XXX and for pipes?), at most one raw read will be issued, and a short result does not imply that EOF is imminent. Returns an empty bytes array on EOF. Raises BlockingIOError if the underlying raw stream has no data at the moment. r«Nrk©rfr£s rr«zBufferedIOBase.read¯s€ð$ ×ј&Õ!rcó&—|jd«y)zaRead up to size bytes with at most one read() system call, where size is an int. Úread1NrkrÓs rrÕzBufferedIOBase.read1Ãs€ð ×ј'Õ"rcó(—|j|d¬«S)afRead bytes into a pre-allocated bytes-like object b. Like read(), this may issue multiple reads to the underlying raw stream, unless the latter is 'interactive'. Returns an int representing the number of bytes read (0 for EOF). Raises BlockingIOError if the underlying raw stream has no data at the moment. F©rÕ©Ú _readintorÎs rrÊzBufferedIOBase.readintoÉs€ð�~‰~˜a uˆ~Ó-Ð-rcó(—|j|d¬«S)zíRead bytes into buffer *b*, using at most one system call Returns an int representing the number of bytes read (0 for EOF). Raises BlockingIOError if the underlying raw stream has no data at the moment. Tr×rØrÎs rÚ readinto1zBufferedIOBase.readinto1×s€ð�~‰~˜a tˆ~Ó,Ð,rcóì—t|t«s t|«}|jd«}|r|jt |««}n|j t |««}t |«}||d||S)NÚB)r+Ú memoryviewÚcastrÕr3r«)rfr'rÕrÌr¢s rrÙzBufferedIOBase._readintoâsb€Ü˜!œZÔ(ܘ1“ ˆAØ �F‰F�3‹Kˆá Ø—:‘:œc !›fÓ%‰Dà—9‘9œS ›VÓ$ˆDÜ �‹Iˆàˆˆ"ˆ1ˆàˆrcó&—|jd«y)aWrite the given bytes buffer to the IO stream. Return the number of bytes written, which is always the length of b in bytes. Raises BlockingIOError if the buffer is full and the underlying raw stream cannot accept more data at the moment. r¿NrkrÎs rr¿zBufferedIOBase.writeñs€ð ×ј'Õ"rcó&—|jd«y)z° Separate the underlying raw stream from the buffer and return it. After the raw stream has been detached, the buffer is in an unusable state. ÚdetachNrkrps rrâzBufferedIOBase.detachüó€ð ×ј(Õ#rNrÂ) r]r^r_rÃr«rÕrÊrÛrÙr¿râr`rrrÑrÑžs*„ñ ó"ó(#ò .ò -ò ò #ó$rrÑcóœ—eZdZdZd„Zdd„Zd„Zdd„Zd„Zd„Z d „Z d „Z e d „«Z e d „«Ze d „«Ze d„«Zd„Zd„Zd„Zd„Zy)Ú_BufferedIOMixinzÝA mixin implementation of BufferedIOBase with an underlying raw stream. This passes most requests on to the underlying raw stream. It does *not* provide implementations of read(), readinto() or write(). có—||_yr±©Ú_raw©rfrQs rÚ__init__z_BufferedIOMixin.__init__s €Øˆ� rcó^—|jj||«}|dkr td«‚|S)Nrz#seek() returned an invalid position)rQrjr<)rfrmrnÚ new_positions rrjz_BufferedIOMixin.seeks0€Ø—x‘x—}‘} S¨&Ó1ˆ Ø ˜!Ò ÜÐ?Ó@Ð @ØÐrcóZ—|jj«}|dkr td«‚|S)Nrz#tell() returned an invalid position)rQrqr<rts rrqz_BufferedIOMixin.tells)€Ø�h‰h�m‰m‹oˆØ �Š7ÜÐ?Ó@Ð @؈ rNcó¼—|j«|j«|j«|€|j«}|jj |«Sr±)rxr�ryrqrQrsrts rrsz_BufferedIOMixin.truncate"sL€Ø ×ÑÔØ ×ÑÔð � ‰ Œ à ˆ;Ø—)‘)“+ˆCð�x‰x× Ñ  Ó%Ð%rcóf—|jr td«‚|jj«y)Núflush on closed file)r}r4rQryrps rryz_BufferedIOMixin.flush3s#€Ø �;Š;ÜÐ3Ó4Ð 4Ø �‰�‰ÕrcóÌ—|j�9|js, |j«|jj«yyy#|jj«wxYwr±)rQr}ryrCrps rrCz_BufferedIOMixin.close8sH€Ø �8‰8Ð ¨¯ ª ð !à— ‘ ” à—‘—‘Õ ð )4Ð øð —‘—‘Õ úó šAÁA#cóz—|j€ td«‚|j«|j}d|_|S)Nzraw stream already detached)rQr4ryrèrés rrâz_BufferedIOMixin.detach@s6€Ø �8‰8Ð ÜÐ:Ó;Ð ;Ø � ‰ Œ Ø�i‰iˆØˆŒ ؈ rcó6—|jj«Sr±)rQr�rps rr�z_BufferedIOMixin.seekableJó€Ø�x‰x× Ñ Ó"Ð"rcó—|jSr±rçrps rrQz_BufferedIOMixin.rawMs €à�y‰yÐrcó.—|jjSr±)rQr}rps rr}z_BufferedIOMixin.closedQs€à�x‰x�‰Ðrcó.—|jjSr±)rQrgrps rrgz_BufferedIOMixin.nameUó€à�x‰x�}‰}Ðrcó.—|jjSr±)rQrBrps rrBz_BufferedIOMixin.modeYrùrcóH—td|jj›d�«‚©Nzcannot pickle z object©r1rer]rps rÚ __getstate__z_BufferedIOMixin.__getstate__]ó!€Ü˜.¨¯©×)@Ñ)@Ð(CÀ7ÐKÓLÐLrcóÜ—|jj}|jj} |j}dj |||«S#t $rdj ||«cYSwxYw)Nz<{}.{} name={!r}>z<{}.{}>)rer^r_rgÚformatr=)rfÚmodnameÚclsnamergs rÚ__repr__z_BufferedIOMixin.__repr__`sj€Ø—.‘.×+Ñ+ˆØ—.‘.×-Ñ-ˆð FØ—9‘9ˆDð'×-Ñ-¨g°wÀÓEÐ Eøôò 6Ø×#Ñ# G¨WÓ5Ò 5ð 6ús® A Á A+Á*A+có6—|jj«Sr±)rQr:rps rr:z_BufferedIOMixin.filenoló€Ø�x‰x�‰Ó Ð rcó6—|jj«Sr±)rQr7rps rr7z_BufferedIOMixin.isattyorrrÁr±)r]r^r_rÃrêrjrqrsryrCrâr�rÄrQr}rgrBrþrr:r7r`rrrårås•„ñòó ò ó &ò"ò !òò#ðñóððñóððñóððñóðòMòFò!ó!rråcó~‡—eZdZdZdZdd„Zd„Zd„Zd„Zˆfd„Z dd„Z dd „Z d „Z dd „Z d „Zdd „Zd„Zd„Zd„ZˆxZS)ÚBytesIOzÐ>ð ?ús ž CÃCcó$—|j|«S)z"This is the same as read. )r«rÓs rrÕz BytesIO.read1¯s€ð�y‰y˜‹ÐrcóÄ—|jr td«‚t|t«r t d«‚t |«5}|j }ddd«dk(ry|j}|t|j«kDr0d|t|j«z z}|xj|z c_ ||j|||z|xj|z c_|S#1swYŒŒxYw)Núwrite to closed fileú can't write str to binary streamró) r}r4r+r/r1rÞÚnbytesr r3r )rfr'Úviewr¢rmÚpaddings rr¿z BytesIO.write´s¼€Ø �;Š;ÜÐ3Ó4Ð 4Ü �aœÔ ÜÐ>Ó?Ð ?Ü ˜Œ]˜dØ— ‘ ˆA÷à �Š6ØØ�i‰iˆØ ”�T—\‘\Ó"Ò "ð ¤s¨4¯<©<Ó'8Ñ!8Ñ9ˆGØ �LŠL˜GÑ #�LØ$%ˆ� ‰ �S˜˜q™Ð!Ø � Š �Q‰� ؈÷ˆ]ús ¾ CÃCcóÈ—|jr td«‚ |j}|«}|dk(r&|dkrtd|›�«‚||_|j S|dk(r*t d|j |z«|_|j S|dk(r3t dt|j«|z«|_|j Std«‚#t$rt |›d�«‚wxYw)Nzseek on closed filer§rúnegative seek position r r zunsupported whence value) r}r4r©r=r1r Úmaxr3r )rfrmrnÚ pos_indexs rrjz BytesIO.seekÇs逨 �;Š;ÜÐ2Ó3Ð 3ð ØŸ ™ ˆIñ“+ˆCØ �QŠ;Ø�QŠwÝ ÁÐ!EÓFÐF؈DŒIð�y‰yÐð �qŠ[ܘA˜tŸy™y¨3™Ó/ˆDŒIð �y‰yÐð �qŠ[ܘAœs 4§<¡<Ó0°3Ñ6Ó7ˆDŒIð�y‰yÐôÐ7Ó8Ð 8øôò :ܘs˜gÐ%7Ð8Ó9Ð 9ð :ús ™ C à C!cóH—|jr td«‚|jS)Nútell on closed file)r}r4r rps rrqz BytesIO.tellÜs€Ø �;Š;ÜÐ2Ó3Ð 3Ø�y‰yÐrcóô—|jr td«‚|€ |j}n' |j}|«}|dkrtd|›�«‚|j |d…=|S#t$rt |›d�«‚wxYw)Nztruncate on closed filer§rznegative truncate position )r}r4r r©r=r1r )rfrmr)s rrszBytesIO.truncateás†€Ø �;Š;ÜÐ6Ó7Ð 7Ø ˆ;Ø—)‘)‰Cð "ØŸM™M� ñ “k�Ø�QŠwÝ ÁCÐ!IÓJÐJØ �L‰L˜™Ð ؈ øô"ò >Ü 3 'Ð);Ð <Ó=Ð=ð >ús ¨ AÁA7có2—|jr td«‚y©Nr’Tr“rps rrˆzBytesIO.readableòó€Ø �;Š;ÜÐ<Ó=Ð =Ørcó2—|jr td«‚yr.r“rps rr�zBytesIO.writable÷r/rcó2—|jr td«‚yr.r“rps rr�zBytesIO.seekableür/rr±rÂrÁ)r]r^r_rÃr rêrþrrrCr«rÕr¿rjrqrsrˆr�r�Ú __classcell__©res@rr r ssSø„áFð€Góò$ò #ò(ôó ó*ò ó&ò*ó ò"ò ö rr cób—eZdZdZefd„Zd„Zd„Zdd„Zdd„Z dd„Z dd „Z dd „Z d „Z d „Zdd „Zy)r@aBufferedReader(raw[, buffer_size]) A buffer for a readable, sequential BaseRawIO object. The constructor creates a BufferedReader for the given readable raw stream and buffer_size. If buffer_size is omitted, DEFAULT_BUFFER_SIZE is used. cóÒ—|j«s td«‚tj||«|dkr t d«‚||_|j «t«|_y)zMCreate a new buffered reader using the given readable raw IO object. z "raw" argument must be readable.rúinvalid buffer sizeN) rˆr<rårêr4Ú buffer_sizeÚ_reset_read_bufÚLockÚ _read_lock©rfrQr7s rrêzBufferedReader.__init__ sZ€ð�|‰|Œ~ÜÐ<Ó=Ð =ä×!Ñ! $¨Ô,Ø ˜!Ò ÜÐ2Ó3Ð 3Ø&ˆÔØ ×ÑÔÜ›&ˆ�rcó6—|jj«Sr±)rQrˆrps rrˆzBufferedReader.readablerõrcó —d|_d|_y)Nrr)Ú _read_bufÚ _read_posrps rr8zBufferedReader._reset_read_bufs€ØˆŒØˆ�rNcóŒ—|�|dkr td«‚|j5|j|«cddd«S#1swYyxYw)zÿRead size bytes. Returns exactly size bytes of data unless the underlying raw IO stream reaches EOF or if the call would block in non-blocking mode. If size is negative, read until EOF or until read() would block. Nr*zinvalid number of bytes to read)r4r:Ú_read_unlockedrÓs rr«zBufferedReader.read!s;€ð Ð   r¢ ÜÐ>Ó?Ð ?Ø �_‹_Ø×&Ñ& tÓ,÷�_Š_ús Ÿ:ºAcóJ—d}d}|j}|j}|�|dk(r²|j«t|jd«r-|jj «}|€ ||dxsdS||d|zS||dg}d} |jj «}||vr|}n |t|«z }|j|«ŒAdj|«xs|St|«|z } || kr|xj|z c_||||zS||dg}t|j|«} | |krG|jj | «}||vr|}n%| t|«z } |j|«| |krŒGt|| «}dj|«} | |d|_d|_| r| d|S|S)Nr)rNr*rÉr) r>r?r8r¨rQrÉr«r3rºÚjoinr(r7r ) rfr¢Ú nodata_valÚ empty_valuesrrmÚchunkÚchunksÚ current_sizeÚavailÚwantedÚouts rrAzBufferedReader._read_unlocked.sʀ؈ Ø"ˆ Ø�n‰nˆØ�n‰nˆð ˆ9˜˜RšØ × Ñ Ô "Ü�t—x‘x Ô+ØŸ™×(Ñ(Ó*�Ø�=ؘs˜t˜9Ò,¨Ð,à˜s˜t˜9 uÑ,Ð,ؘ#˜$�i�[ˆF؈LØàŸ™Ÿ ™ ›�ؘLÑ(Ø!&�JØØ¤ E£ Ñ*� Ø— ‘ ˜eÔ$ðð—8‘8˜FÓ#Ò1 zÐ 1ô�C“˜3‘ˆØ �Š:à �NŠN˜aÑ �NØ�s˜3˜q™5�>Ð !ð�c�d�)�ˆÜ�T×%Ñ% qÓ)ˆØ�aŠiØ—H‘H—M‘M &Ó)ˆEؘ Ñ$Ø"� ØØ ”S˜“ZÑ ˆEØ �M‰M˜%Ô ð �a‹iô ��5‹MˆØ�h‰h�vӈؘQ˜R˜ˆŒØˆŒÙˆs�2�AˆwÐ- :Ð-rcóŠ—|jd«|j5|j|«cddd«S#1swYyxYw)zéReturns buffered bytes without advancing the position. The argument indicates a desired minimal number of bytes; we do at most one raw read to satisfy it. We never return more than self.buffer_size. zpeek of closed fileN)rxr:Ú_peek_unlockedrÓs rrœzBufferedReader.peekbs2€ð ×ÑÐ/Ô0Ø �_‹_Ø×&Ñ& tÓ,÷�_Š_ús ž9¹Acó`—t||j«}t|j«|jz }||ks|dkrT|j|z }|j j |«}|r(|j|jd|z|_d|_|j|jdSr )r r7r3r>r?rQr«)rfr¢ÚwantÚhaveÚto_readÚcurrents rrMzBufferedReader._peek_unlockedms”€Ü�1�d×&Ñ&Ó'ˆÜ�4—>‘>Ó" T§^¡^Ñ3ˆØ �$Š;˜$ !š)Ø×&Ñ&¨Ñ-ˆGØ—h‘h—m‘m GÓ,ˆGÙØ!%§¡°·±°Ð!@À7Ñ!J�”Ø!"�”Ø�~‰~˜dŸn™n˜oÐ.Ð.rc ó.—|jd«|dkr |j}|dk(ry|j5|jd«|j t |t |j«|jz ««cddd«S#1swYyxYw)zr?rÓs rrÕzBufferedReader.read1xsy€ð ×ÑÐ/Ô0Ø �!Š8Ø×#Ñ#ˆDØ �1Š9ØØ �_‹_Ø × Ñ  Ô "Ø×&Ñ&Ü�Dœ#˜dŸn™nÓ-°·±Ñ>Ó?óA÷�_Š_ús µA B  Bcóô—|jd«t|t«s t|«}|jdk(ry|j d«}d}|j 5|t |«krøtt |j«|jz t |««}|rU|j|j|j|z||||z|xj|z c_ ||z }|t |«k(rnlt |«|z |jkDr'|jj||d«}|sn0||z }n|r|s|jd«sn|r|rn|t |«krŒøddd«|S#1swY|SxYw)z2Read data into *buf* with at most one system call.zreadinto of closed filerrÝNr )rxr+rÞr#rßr:r3r r>r?r7rQrÊrM)rfrrÕÚwrittenrIr¢s rrÙzBufferedReader._readinto‹s_€ð ×ÑÐ3Ô4ô ˜#œzÔ*ܘS“/ˆCØ �:‰:˜Š?ØØ�h‰h�s‹mˆàˆØ �_‹_ØœC ›HÒ$ôœC §¡Ó/°$·.±.Ñ@Ä#ÀcÃ(ÓK�ÙàŸ™ t§~¡~°d·n±nÀUÑ6JÐK𘠨¡ Ð.à—N’N eÑ+•NؘuÑ$�Gؤ# c£(Ò*Øô�s“8˜gÑ%¨×(8Ñ(8Ò8ØŸ™×)Ñ)¨#¨g¨h¨-Ó8�AÙØØ˜q‘L‘Gñ ¡GØ×.Ñ.¨qÔ1Øñ™WØð9œC ›HÓ$÷ð>ˆ÷?ð>ˆús ÁDE-Å-E7có†—ttj|«t|j«z |j zd«Sr )r(rårqr3r>r?rps rrqzBufferedReader.tell»s3€äÔ#×(Ñ(¨Ó.´°T·^±^Ó1DÑDÀtÇ~Á~ÑUÐWXÓYÐYrcó4—|tvr td«‚|jd«|j5|dk(r%|t |j «|j z z}tj|||«}|j«|cddd«S#1swYyxYw)Núinvalid whence valuezseek of closed filer ) Úvalid_seek_flagsr4rxr:r3r>r?rårjr8rls rrjzBufferedReader.seek¿s}€Ø Ô)Ñ )ÜÐ3Ó4Ð 4Ø ×ÑÐ/Ô0Ø �_‹_ؘŠ{Ø”s˜4Ÿ>™>Ó*¨T¯^©^Ñ;Ñ;�Ü"×'Ñ'¨¨c°6Ó:ˆCØ × Ñ Ô "Ø÷ �_Š_ús ±ABÂBr±rÁrÂ)r]r^r_rÃr8rêrˆr8r«rArœrMrÕrÙrqrjr`rrr@r@sG„ñð)<ó !ò#òó -ó2.óh -ó /ó Aò&.ò`Zô rr@cóN—eZdZdZefd„Zd„Zd„Zd d„Zd„Z d„Z d „Z d d „Z d „Z y)r?zÕA buffer for a writeable sequential RawIO object. The constructor creates a BufferedWriter for the given writeable raw stream. If the buffer_size is not given, it defaults to DEFAULT_BUFFER_SIZE. cóЗ|j«s td«‚tj||«|dkr t d«‚||_t «|_t«|_ y)Nz "raw" argument must be writable.rr6) r�r<rårêr4r7rªÚ _write_bufr9Ú _write_lockr;s rrêzBufferedWriter.__init__ÓsV€Ø�|‰|Œ~ÜÐ<Ó=Ð =ä×!Ñ! $¨Ô,Ø ˜!Ò ÜÐ2Ó3Ð 3Ø&ˆÔÜ#›+ˆŒÜ›6ˆÕrcó6—|jj«Sr±)rQr�rps rr�zBufferedWriter.writableÞrõrcóD—t|t«r td«‚|j5|jr t d«‚t |j«|jkDr|j«t |j«}|jj|«t |j«|z }t |j«|jkDr |j«|cddd«S#t$r’}t |j«|jkDrft |j«|jz }||z}|jd|j|_t|j|j|«‚Yd}~Œ¡d}~wwxYw#1swYyxYw)Nr!r )r+r/r1r]r}r4r3r\r7Ú_flush_unlockedÚextendÚBlockingIOErrorÚerrnoÚstrerror)rfr'ÚbeforerUÚeÚoverages rr¿zBufferedWriter.writeásR€Ü �aœÔ ÜÐ>Ó?Ð ?Ø × Ó Ø�{Š{Ü Ð!7Ó8Ð8ô�4—?‘?Ó# d×&6Ñ&6Ò6ð×$Ñ$Ô&ܘŸ™Ó)ˆFØ �O‰O× "Ñ " 1Ô %ܘ$Ÿ/™/Ó*¨VÑ3ˆGÜ�4—?‘?Ó# d×&6Ñ&6Ò6ð LØ×(Ñ(Ô*ð÷/Ñ øô'òLܘ4Ÿ?™?Ó+¨d×.>Ñ.>Ò>ô#& d§o¡oÓ"6¸×9IÑ9IÑ"I˜Ø 7Ñ*˜Ø*.¯/©/Ð:K¸4×;KÑ;KÐ*L˜œÜ-¨a¯g©g°q·z±zÀ7ÓKÐKô ?ûðLú÷Ð ús7¨B4FÃC8Ã-FÃ8 FÄBFÆ FÆFÆFÆFNcóÔ—|j5|j«|€|jj«}|jj |«cddd«S#1swYyxYwr±)r]r`rQrqrsrts rrszBufferedWriter.truncateýsI€Ø × Ó Ø × Ñ Ô "؈{Ø—h‘h—m‘m“o�Ø—8‘8×$Ñ$ SÓ)÷ × Ò ús �AAÁA'cóf—|j5|j«ddd«y#1swYyxYwr±)r]r`rps rryzBufferedWriter.flushs#€Ø × Ó Ø × Ñ Ô "÷× Ñ ús�'§0cóŠ—|jr td«‚|jrˆ |jj |j«}|€t tjdd«‚|t|j«kDs|dkr td«‚|jd|…=|jrŒ‡yy#t $r t d«‚wxYw)NrðzHself.raw should implement RawIOBase: it should not raise BlockingIOErrorz)write could not complete without blockingrz*write() returned incorrect number of bytes) r}r4r\rQr¿rbÚ RuntimeErrorrcÚEAGAINr3r<©rfr¢s rr`zBufferedWriter._flush_unlockedsÀ€Ø �;Š;ÜÐ3Ó4Ð 4Ø�oŠoð GØ—H‘H—N‘N 4§?¡?Ó3�ðˆyÜ%Ü—L‘LØ?ÀóDðDð”3�t—‘Ó'Ò'¨1¨qª5ÜÐJÓKÐKØ—‘   Ð#ð�o�oøô#ò GÜ"ð$FóGðGð Gús ¥%B-Â-CcóX—tj|«t|j«zSr±)rårqr3r\rps rrqzBufferedWriter.tells!€Ü×$Ñ$ TÓ*¬S°·±Ó-AÑAÐArcóº—|tvr td«‚|j5|j«tj |||«cddd«S#1swYyxYw)NrX)rYr4r]r`rårjrls rrjzBufferedWriter.seeksJ€Ø Ô)Ñ )ÜÐ3Ó4Ð 4Ø × Ó Ø × Ñ Ô "Ü#×(Ñ(¨¨s°FÓ;÷× Ò ús  'AÁAcó¤—|j5|j� |jr ddd«y ddd« |j«|j5|jj «ddd«y#1swYŒJxYw#1swYyxYw#|j5|jj «ddd«w#1swYwxYwxYwr±)r]rQr}ryrCrps rrCzBufferedWriter.close#s�€Ø × Ó Ø�x‰xР4§;¢;Ø÷Ð Ø#.÷ð !à �J‰JŒLà×!Ó!Ø—‘—‘Ô ÷"Ð!÷Ð ú÷"Ð!û�×!Ó!Ø—‘—‘Ô ÷"×!Ñ!ýs:�A:ºBÁBÁ:BÂB CÂCÂ: CÃC ÃCr±rÁ)r]r^r_rÃr8rêr�r¿rsryr`rqrjrCr`rrr?r?Ês:„ñð)<ó "ò#òó8*ò#ò$ò"Bó<ó !rr?cór—eZdZdZefd„Zdd„Zd„Zd„Zdd„Z dd„Z d„Z d „Z d „Z d „Zd „Zd „Zed„«Zy)ÚBufferedRWPaira“A buffered reader and writer object together. A buffered reader object and buffered writer object put together to form a sequential IO object that can read and write. This is typically used with a socket or two-way pipe. reader and writer are RawIOBase objects that are readable and writeable respectively. If the buffer_size is omitted it defaults to DEFAULT_BUFFER_SIZE. có´—|j«s td«‚|j«s td«‚t||«|_t ||«|_y)zEConstructor. The arguments are two RawIO instances. z#"reader" argument must be readable.z#"writer" argument must be writable.N)rˆr<r�r@Úreaderr?Úwriter)rfrtrur7s rrêzBufferedRWPair.__init__CsL€ð �‰Ô ÜÐ?Ó@Ð @à�‰Ô ÜÐ?Ó@Ð @ä$ V¨[Ó9ˆŒ Ü$ V¨[Ó9ˆ� rcó@—|€d}|jj|«S©Nr*)rtr«rÓs rr«zBufferedRWPair.readQs!€Ø ˆ<؈DØ�{‰{×Ñ Ó%Ð%rcó8—|jj|«Sr±)rtrÊrÎs rrÊzBufferedRWPair.readintoVs€Ø�{‰{×#Ñ# AÓ&Ð&rcó8—|jj|«Sr±)rur¿rÎs rr¿zBufferedRWPair.writeYs€Ø�{‰{× Ñ  Ó#Ð#rcó8—|jj|«Sr±)rtrœrÓs rrœzBufferedRWPair.peek\s€Ø�{‰{×Ñ Ó%Ð%rcó8—|jj|«Sr±)rtrÕrÓs rrÕzBufferedRWPair.read1_s€Ø�{‰{× Ñ  Ó&Ð&rcó8—|jj|«Sr±)rtrÛrÎs rrÛzBufferedRWPair.readinto1bs€Ø�{‰{×$Ñ$ QÓ'Ð'rcó6—|jj«Sr±)rtrˆrps rrˆzBufferedRWPair.readableeó€Ø�{‰{×#Ñ#Ó%Ð%rcó6—|jj«Sr±)rur�rps rr�zBufferedRWPair.writablehr~rcó6—|jj«Sr±)ruryrps rryzBufferedRWPair.flushks€Ø�{‰{× Ñ Ó"Ð"rcó¬— |jj«|jj«y#|jj«wxYwr±)rurCrtrps rrCzBufferedRWPair.closens8€ð Ø �K‰K× Ñ Ô à �K‰K× Ñ Õ øˆD�K‰K× Ñ Õ ús ‚7·Acón—|jj«xs|jj«Sr±)rtr7rurps rr7zBufferedRWPair.isattyts'€Ø�{‰{×!Ñ!Ó#Ò; t§{¡{×'9Ñ'9Ó';Ð;rcó.—|jjSr±)rur}rps rr}zBufferedRWPair.closedwó€à�{‰{×!Ñ!Ð!rNrÂrÁ)r]r^r_rÃr8rêr«rÊr¿rœrÕrÛrˆr�ryrCr7rÄr}r`rrrrrr3s]„ñ ð4Gó :ó&ò 'ò$ó&ó'ò(ò&ò&ò#ò ò <ðñ"óñ"rrrcóZ—eZdZdZefd„Zd d„Zd„Zdd„Zdd„Z d„Z d d „Z dd „Z d „Z d „Zy)r>zçA buffered interface to random access streams. The constructor creates a reader and writer for a seekable stream, raw, given in the first argument. If the buffer_size is omitted it defaults to DEFAULT_BUFFER_SIZE. có€—|j«tj|||«tj|||«yr±)r…r@rêr?r;s rrêzBufferedRandom.__init__…s2€Ø ×ÑÔÜ×Ñ  c¨;Ô7Ü×Ñ  c¨;Õ7rcóØ—|tvr td«‚|j«|jrQ|j5|j j |jt|j«z d«ddd«|j j ||«}|j5|j«ddd«|dkr td«‚|S#1swYŒ\xYw#1swYŒ'xYw)NrXr rz seek() returned invalid position) rYr4ryr>r:rQrjr?r3r8r<rls rrjzBufferedRandom.seekŠs­€Ø Ô)Ñ )ÜÐ3Ó4Ð 4Ø � ‰ Œ Ø �>Š>à—“Ø—‘— ‘ ˜dŸn™n¬s°4·>±>Ó/BÑBÀAÔF÷!ð�h‰h�m‰m˜C Ó(ˆØ �_‹_Ø × Ñ Ô "÷à �Š7ÜÐ<Ó=Ð =؈ ÷!�ú÷ ˆ_ús¼=CÂ)C ÃCà C)cón—|jrtj|«Stj|«Sr±)r\r?rqr@rps rrqzBufferedRandom.tell›s+€Ø �?Š?Ü!×&Ñ& tÓ,Ð ,ä!×&Ñ& tÓ,Ð ,rNcóR—|€|j«}tj||«Sr±)rqr?rsrts rrszBufferedRandom.truncate¡s%€Ø ˆ;Ø—)‘)“+ˆCä×&Ñ& t¨SÓ1Ð1rcóV—|€d}|j«tj||«Srw)ryr@r«rÓs rr«zBufferedRandom.read§s(€Ø ˆ<؈DØ � ‰ Œ Ü×"Ñ" 4¨Ó.Ð.rcóN—|j«tj||«Sr±)ryr@rÊrÎs rrÊzBufferedRandom.readinto­s€Ø � ‰ Œ Ü×&Ñ& t¨QÓ/Ð/rcóN—|j«tj||«Sr±)ryr@rœrÓs rrœzBufferedRandom.peek±s€Ø � ‰ Œ Ü×"Ñ" 4¨Ó.Ð.rcóN—|j«tj||«Sr±)ryr@rÕrÓs rrÕzBufferedRandom.read1µs€Ø � ‰ Œ Ü×#Ñ# D¨$Ó/Ð/rcóN—|j«tj||«Sr±)ryr@rÛrÎs rrÛzBufferedRandom.readinto1¹s€Ø � ‰ Œ Ü×'Ñ'¨¨aÓ0Ð0rcó —|jra|j5|jj|jt |j«z d«|j «ddd«tj||«S#1swYŒxYwr¦) r>r:rQrjr?r3r8r?r¿rÎs rr¿zBufferedRandom.write½sb€Ø �>Š>à—“Ø—‘— ‘ ˜dŸn™n¬s°4·>±>Ó/BÑBÀAÔFØ×$Ñ$Ô&÷!ô×#Ñ# D¨!Ó,Ð,÷!�ús ™A BÂB rÁr±rÂ)r]r^r_rÃr8rêrjrqrsr«rÊrœrÕrÛr¿r`rrr>r>|s>„ñð)<ó8ó ò"-ó 2ó /ò 0ó/ó0ò1ó-rr>cóÒ‡—eZdZdZdZdZdZdZdZdZ dd„Z d„Z d„Z d„Z d „Zdd „Zdd „Zd „Zd „Zd„Zefd„Zd„Zdd„Zˆfd„Zd„Zd„Zd„Zd„Zd„Zed„«Zed„«Z ˆxZ!S)r6r*FNTcó\—|jdk\r3 |jrtj|j«d|_t |t «r t d«‚t |t«r|}|dkr td«‚d}t |t«st d|›�«‚t|«td«kstd|›�«‚td„|D««dk7s|jd «dkDr td «‚d |vr0d |_ d |_tjtj z}nnd |vr d |_d}n`d|vr)d |_tj tj$z}n3d|vr/d |_d |_tj(tj z}d |vrd |_d |_|j"r |jrtj*z}n3|j"rtj,z}ntj.z}|t1tdd«z}t1tdd«xst1tdd«}||z}d} |dkru|s td«‚|€tj2||d«}n4|||«}t |t«s t d«‚|dkr t5d«‚|}|stj6|d«||_tj8|«} t;j<| j>«rz"FileIO.__init__..ñsèø€Ð)¡D˜qˆq�FŒ{¡Dùs‚r r%zKMust have exactly one of create/read/write/append mode and at most one plusr!Tr"r#r$ÚO_BINARYÚ O_NOINHERITÚ O_CLOEXECNz'Cannot use closefd=False with file namei¶zexpected integer from openerzNegative file descriptorFr;)-Ú_fdÚ_closefdr-rCr+Úfloatr1r,r4r/r2ÚsumÚcountÚ_createdÚ _writableÚO_EXCLÚO_CREATÚ _readableÚO_TRUNCÚ _appendingÚO_APPENDÚO_RDWRÚO_RDONLYÚO_WRONLYÚgetattrrVr<Úset_inheritabler9ÚstatÚS_ISDIRÚst_modeÚIsADirectoryErrorrcÚEISDIRrdr=Ú_blksizer8Ú_setmoder—rgÚlseekr ÚESPIPE) rfrDrBrHr)ÚfdrÚnoinherit_flagÚowned_fdÚfdfstatrfs rrêzFileIO.__init__Ïs�€ð �8‰8�qŠ=ð Ø—=’=Ü—H‘H˜TŸX™XÔ&à�”ä �dœEÔ "ÜÐBÓCÐ CÜ �dœCÔ ØˆBØ�AŠvÜ Ð!;Ó<Ð<àˆBä˜$¤Ô$ݱ$Ð8Ó9Ð 9Ü�4‹yœC ›MÒ)ݱ4Ð9Ó:Ð :Ü Ñ)¡DÓ)Ó )¨QÒ .°$·*±*¸S³/ÀAÒ2EÜð9ó:ð :ð �$‰;Ø ˆDŒMØ!ˆDŒNÜ—I‘I¤§ ¡ Ñ*‰EØ �D‰[Ø!ˆDŒN؉EØ �D‰[Ø!ˆDŒNÜ—J‘J¤§¡Ñ+‰EØ �D‰[Ø!ˆDŒNØ"ˆDŒOÜ—K‘K¤"§*¡*Ñ,ˆEà �$‰;Ø!ˆDŒNØ!ˆDŒNà �>Š>˜dŸnšnØ ”R—Y‘YÑ ‰EØ �^Š^Ø ”R—[‘[Ñ ‰Eà ”R—[‘[Ñ ˆEà ”œ˜Z¨Ó+Ñ+ˆä!¤" m°QÓ7ò6Ü!¤" k°1Ó5ð à �шàˆð/ Ø�AŠvÙÜ$Ð%NÓOÐOØ�>ÜŸ™  u¨eÓ4‘Bá  eÓ,�BÜ% b¬#Ô.Ü'Ð(FÓGÐGؘA’vÜ%Ð&@ÓAÐAØ�Ù%Ü×&Ñ& r¨5Ô1à#ˆDŒMÜ—h‘h˜r“lˆGð Ü—<‘< §¡Ô0Ü+¬E¯L©LÜ,.¯K©K¼¿ ¹ Ó,EÀtóMðMð1ô$ G¨\¸1Ó=ˆDŒMØ�}‰} Ò!Ü 3�” å䘜RŸ[™[Ô)àˆDŒIØ�ŠðÜ—H‘H˜R ¤HÔ-ðˆ�øðI�•ûôT"ò ñð ûô&òØ—w‘w¤%§,¡,Ò.Øô/ûðûð ØÐ#Ü—‘˜Ô"Ø úsb‘+OÉ BPË#AOÌ>A PÎOÏ O Ï OÏPÏOÏPÏ PÏ&P ÐPÐ PÐPÐP+có¸—|jdk\rK|jr>|js1ddl}|j d|›�t d|¬«|j «yyyy)Nrzunclosed file r )rÚsource)ršr›r}rrÚResourceWarningrC)rfrs rrzFileIO.__del__HsK€Ø �8‰8�qŠ=˜TŸ]š]°4·;²;Û Ø �MŠM±Ð6¼Ø%&¨tð ô 5à �J‰J�Lð 4?˜]ˆ=rcóH—td|jj›d�«‚rürýrps rrþzFileIO.__getstate__Orÿrc óN—|jj›d|jj›�}|jrd|zS |j}d|›d|›d|j ›d|j ›d� S#t$r*d||j|j |j fzcYSwxYw) Nrdz <%s [closed]>Úz<%s fd=%d mode=%r closefd=%r>) rer^r_r}rgrBr›r=rš)rfÚ class_namergs rrzFileIO.__repr__Rs�€Ø $§¡× 9Ó 9Ø $§¡× ;Ò ;ð=ˆ à �;Š;Ø" ZÑ/Ð /ð BØ—9‘9‰Dò  ¢ t§y£y°$·-³-ðAð Bøô ò FØ3Ø §¡¨4¯9©9°d·m±mÐDñEò Fð FúsÁ A1Á10B$Â#B$có2—|js td«‚y)NzFile not open for reading)r£r\rps rr‹zFileIO._checkReadable`ó€Ø�~Š~Ü&Ð'BÓCÐ Cðrcó2—|js td«‚y)NzFile not open for writing)r r\rƒs rr�zFileIO._checkWritabledrÂrcóЗ|j«|j«|�|dkr|j«S tj|j |«S#t $rYywxYw)zöRead at most size bytes, returned as bytes. Only makes one system call, so less data may be returned than requested In non-blocking mode, returns None if no data is available. Return an empty bytes object at EOF. Nr)rxr‹rÉr-r«ršrbrÓs rr«z FileIO.readhs_€ð ×ÑÔØ ×ÑÔØ ˆ<˜4 !š8Ø—<‘<“>Ð !ð Ü—7‘7˜4Ÿ8™8 TÓ*Ð *øÜò Ùð ús¹AÁ A%Á$A%cóR—|j«|j«t} tj|j dt «}tj|j «j}||k\r||z dz}t«} t|«|k\rt|«}|t|t«z }|t|«z } tj|j |«}|s t|«S||z }Œo#t$rYŒ…wxYw#t$r|r Yt|«SYywxYw)zÓRead all data from the file, returned as bytes. In non-blocking mode, returns as much as is immediately available, or None if no data is available. Return an empty bytes object at EOF. rr N)rxr‹r8r-r³ršr r9Úst_sizer<rªr3r(r«rbr0)rfÚbufsizermÚendrRr¢rFs rrÉzFileIO.readallxs!€ð ×ÑÔØ ×ÑÔÜ%ˆð Ü—(‘(˜4Ÿ8™8 Q¬Ó1ˆCÜ—(‘(˜4Ÿ8™8Ó$×,Ñ,ˆCØ�cŠzØ ™) a™-�ô“ˆØÜ�6‹{˜gÒ%ܘf›+�Øœ3˜wÔ(;Ó<Ñ<�Øœ#˜f›+Ñ%ˆAð ÜŸ™ §¡¨!Ó,�ñ Øô�V‹}Ðð �e‰OˆFðøô ò Ù ð ûô#ò ÙØô �V‹}Ðñ ð ús$¨AC=à D Ã= D ÄD Ä D&Ä%D&cóŽ—t|«jd«}|jt|««}t|«}||d||S)zSame as RawIOBase.readinto().rÝN)rÞrßr«r3)rfr'ÚmrÌr¢s rrÊzFileIO.readinto›sA€ä �q‹M× Ñ ˜sÓ #ˆØ�y‰yœ˜Q›Ó ˆÜ �‹IˆØˆˆ"ˆ1ˆØˆrcó¢—|j«|j« tj|j|«S#t $rYywxYw)aWrite bytes b to file, return number written. Only makes one system call, so not all of the data may be written. The number of bytes actually written is returned. In non-blocking mode, returns None if the write would block. N)rxr�r-r¿ršrbrÎs rr¿z FileIO.write£sH€ð ×ÑÔØ ×ÑÔð Ü—8‘8˜DŸH™H aÓ(Ð (øÜò Ùð ús¢AÁ AÁ Acóš—t|t«r td«‚|j«t j |j ||«S)aéMove to new file position. Argument offset is a byte count. Optional argument whence defaults to SEEK_SET or 0 (offset from start of file, offset should be >= 0); other values are SEEK_CUR or 1 (move relative to current position, positive or negative), and SEEK_END or 2 (move relative to end of file, usually negative, although many platforms allow seeking beyond the end of a file). Note that not all file objects are seekable. zan integer is required)r+rœr1rxr-r³ršrls rrjz FileIO.seek±s=€ô �cœ5Ô !ÜÐ4Ó5Ð 5Ø ×ÑÔÜ�x‰x˜Ÿ™ # vÓ.Ð.rcól—|j«tj|jdt«S)zYtell() -> int. Current file position. Can raise OSError for non seekable files.r)rxr-r³ršr rps rrqz FileIO.tellÁs'€ð ×ÑÔÜ�x‰x˜Ÿ™ !¤XÓ.Ð.rcóª—|j«|j«|€|j«}tj|j |«|S)zÀTruncate the file to at most size bytes. Size defaults to the current file position, as returned by tell(). The current file position is changed to the value of size. )rxr�rqr-Ú ftruncateršrÓs rrszFileIO.truncateÈsC€ð ×ÑÔØ ×ÑÔØ ˆ<Ø—9‘9“;ˆDÜ � ‰ �T—X‘X˜tÔ$؈ rc󺕗|js; |jrtj|j«t ‰|� «yy#t ‰|� «wxYw)z—Close the file. A closed file cannot be used for further I/O operations. close() may be called more than once without error. N)r}r›r-rCršrrs €rrCz FileIO.closeÕsCø€ð �{Š{ð Ø—=’=Ü—H‘H˜TŸX™XÔ&ä‘‘ •ð øô ‘‘ •ús �+A Á AcóÜ—|j«|j€$ |j«d|_|jS|jS#t$rd|_Y|jSwxYw)z$True if file supports random-access.TF)rxÚ _seekablerqr<rps rr�zFileIO.seekableâsf€à ×ÑÔØ �>‰>Ð !ð &Ø— ‘ ” ð"&�”Ø�~‰~Јt�~‰~Ðøô ò 'Ø!&�•ð�~‰~Ðð  'úsžA Á A+Á*A+có:—|j«|jS)z'True if file was opened in a read mode.)rxr£rps rrˆzFileIO.readableîó€à ×ÑÔØ�~‰~Ðrcó:—|j«|jS)z(True if file was opened in a write mode.)rxr rps rr�zFileIO.writableórÔrcó:—|j«|jS)z3Return the underlying file descriptor (an integer).)rxršrps rr:z FileIO.filenoøs€à ×ÑÔØ�x‰xˆrcó`—|j«tj|j«S)z.True if the file is connected to a TTY device.)rxr-r7ršrps rr7z FileIO.isattyýs!€à ×ÑÔÜ�y‰y˜Ÿ™Ó"Ð"rcó—|jS)z6True if the file descriptor will be closed by close().)r›rps rrHzFileIO.closefds€ð�}‰}Ðrcó —|jr|jryy|jr|jryy|jr|jryyy)zString giving the file modezxb+Úxbzab+Úabzrb+rXÚwb)rŸr£r¥r rps rrBz FileIO.modesC€ð �=Š=Ø�~Š~ØàØ �_Š_Ø�~Š~ØàØ �^Š^Ø�~Š~Øààr)r"TNr±)"r]r^r_ršrŸr£r r¥rÒr›rêrrþrr‹r�r«rÉrÊr¿rrjrqrsrCr�rˆr�r:r7rÄrHrBr2r3s@rr6r6Æs¹ø„Ø €CØ€HØ€IØ€IØ€JØ€IØ€HówòròMò BòDóDóò !òFò ð (ó/ò /ó ô  ò òò ò ò #ð ñóððñóôrr6cób—eZdZdZd d„Zd„Zd d„Zd„Zd„Ze d„«Z e d „«Z e d „«Z y) Ú TextIOBaseznBase class for text I/O. This class provides a character and line based interface to stream I/O. có&—|jd«y)zíRead at most size characters from stream, where size is an int. Read from underlying buffer until we have size characters or we hit EOF. If size is negative or omitted, read until EOF. Returns a string. r«NrkrÓs rr«zTextIOBase.read%s€ð ×ј&Õ!rcó&—|jd«y)z.Write string s to stream and returning an int.r¿Nrk)rfÚss rr¿zTextIOBase.write/s€à ×ј'Õ"rNcó&—|jd«y)z*Truncate size to pos, where pos is an int.rsNrkrts rrszTextIOBase.truncate3s€à ×ј*Õ%rcó&—|jd«y)z_Read until newline or EOF. Returns an empty string if EOF is hit immediately. r¯Nrkrps rr¯zTextIOBase.readline7s€ð ×ј*Õ%rcó&—|jd«y)z· Separate the underlying buffer from the TextIOBase and return it. After the underlying buffer has been detached, the TextIO is in an unusable state. râNrkrps rrâzTextIOBase.detach>rãrcó—y)zSubclasses should override.Nr`rps rrzTextIOBase.encodingGs€ðrcó—y)z’Line endings translated so far. Only line endings translated during reading are considered. Subclasses should override. Nr`rps rÚnewlineszTextIOBase.newlinesLs€ðrcó—y)zMError setting of the decoder or encoder. Subclasses should override.Nr`rps rrFzTextIOBase.errorsVs€ð rrÂr±) r]r^r_rÃr«r¿rsr¯rârÄrrçrFr`rrrÞrÞs\„ñó "ò#ó&ò&ò$ðñóððñóððñóñrrÞcóN—eZdZdZd d„Zd d„Zd„Zd„Zd„ZdZ dZ d Z e d „«Z y )ÚIncrementalNewlineDecodera+Codec used when reading a file in universal newlines mode. It wraps another incremental decoder, translating \r\n and \r into \n. It also records the types of newlines encountered. When used with translate=False, it ensures that the newline sequence is returned in one piece. có~—tjj||¬«||_||_d|_d|_y)N)rFrF)ÚcodecsÚIncrementalDecoderrêÚ translateÚdecoderÚseennlÚ pendingcr)rfrïrîrFs rrêz"IncrementalNewlineDecoder.__init__gs7€Ü×!Ñ!×*Ñ*¨4¸Ð*Ô?Ø"ˆŒØˆŒ ؈Œ ؈�rcó8—|j€|}n|jj||¬«}|jr|s|r d|z}d|_|jd«r|s |dd}d|_|j d«}|j d«|z }|j d«|z }|xj |xr |j |xr |jz|xr |jzzc_|jr(|r|jdd«}|r|jdd«}|S)N©ÚfinalÚ Fr*Tú Ú ) rïÚdecoderñr¬ržrðÚ_LFÚ_CRÚ_CRLFrîÚreplace)rfÚinputrôÚoutputÚcrlfÚcrÚlfs rrøz IncrementalNewlineDecoder.decodens€à �<‰<Р؉Fà—\‘\×(Ñ(¨°eÐ(Ó<ˆFØ �>Š>™v©Ø˜F‘]ˆFØ"ˆDŒNð �?‰?˜4Ô ©Ø˜C˜R�[ˆFØ!ˆDŒNð�|‰|˜FÓ#ˆØ �\‰\˜$Ó  $Ñ &ˆØ �\‰\˜$Ó  $Ñ &ˆØ � Š ˜š˜tŸx™x¨BªO°4·8±8Ñ<ØÒ* § ¡ ñ,ñ ,� ð �>Š>ÙØŸ™¨°Ó5�ÙØŸ™¨¨dÓ3�àˆ rcó’—|j€d}d}n|jj«\}}|dz}|jr|dz}||fS)Nrrr )rïÚgetstaterñ)rfrÚflags rrz"IncrementalNewlineDecoder.getstate�sO€Ø �<‰<Р؈C؉DàŸ ™ ×-Ñ-Ó/‰IˆC�Ø �‰ ˆØ �>Š>Ø �A‰IˆDØ�DˆyÐrcóŽ—|\}}t|dz«|_|j�!|jj||dz f«yyr¦)ÚboolrñrïÚsetstate)rfÚstaterrs rrz"IncrementalNewlineDecoder.setstate˜sD€Ø‰ ˆˆTܘd Q™h›ˆŒØ �<‰<Ð #Ø �L‰L× !Ñ ! 3¨°© Ð"2Õ 3ð $rcón—d|_d|_|j�|jj«yy)NrF)rðrñrïÚresetrps rr zIncrementalNewlineDecoder.resetžs/€ØˆŒ ؈ŒØ �<‰<Ð #Ø �L‰L× Ñ Õ ð $rr r écó —d|jS)N)Nr÷rõ)rõr÷rö)r÷rö)rõrö)rõr÷rö)rðrps rrçz"IncrementalNewlineDecoder.newlines¨s€ðð—‘ñð rN)Ústrict)F)r]r^r_rÃrêrørrr rùrúrûrÄrçr`rrrêrê`sC„ñó óò> ò4ò !ð €CØ €CØ €Eà ñ óñ rrêcóp—eZdZdZdZdZ d*d„Zd„Z d*d„Zd„Z e d„«Z e d „«Z e d „«Z e d „«Ze d „«Zddeddd œd„Zd„Zd„Zd„Zd„Zd„Ze d„«Ze d„«Zd„Zd„Zd„Zd„Zd„Zd„Zd+d„Zd„Z d„Z!d„Z" d,d „Z#d!„Z$d"„Z%d+d#„Z&d$„Z'd-d%„Z(d+d&„Z)d'„Z*d+d(„Z+e d)„«Z,y).rAa÷Character and line based layer over a BufferedIOBase object, buffer. encoding gives the name of the encoding that the stream will be decoded or encoded with. It defaults to locale.getencoding(). errors determines the strictness of encoding and decoding (see the codecs.register) and defaults to "strict". newline can be None, '', '\n', '\r', or '\r\n'. It controls the handling of line endings. If it is None, universal newlines is enabled. With this enabled, on input, the lines endings '\n', '\r', or '\r\n' are translated to '\n' before being returned to the caller. Conversely, on output, '\n' is translated to the system default line separator, os.linesep. If newline is any other of its legal values, that newline becomes the newline when the file is read and it is returned untranslated. On output, '\n' is converted to the newline. If line_buffering is True, a call to flush is implied when a call to write contains a newline character. iNcó`—|j|«t|«}|dk(r|j«}t|t«st d|z«‚t j|«jsd}t||z«‚|€d}n9t|t«st d|z«‚trt j|«||_ d|_ d|_d|_|j j#«x|_|_t)|j d«|_|j-|||||«y) NrrzG%r is not a text encoding; use codecs.open() to handle arbitrary codecsr r r(rrÕ)Ú_check_newlinerÚ_get_locale_encodingr+r/r4rìÚlookupÚ_is_text_encodingÚ LookupErrorÚ _CHECK_ERRORSÚ lookup_errorr Ú_decoded_charsÚ_decoded_chars_usedÚ _snapshotrUr�rÒÚ_tellingr¨Ú _has_read1Ú _configure)rfrUrrFrGrSÚ write_throughr„s rrêzTextIOWrapper.__init__Ös €à ×јGÔ$Ü  Ó*ˆà �xÒ Ø×0Ñ0Ó2ˆHä˜(¤CÔ(ÜÐ3°hÑ>Ó?Ð ?ä�}‰}˜XÓ&×8Ò8ðBˆCä˜c H™nÓ-Ð -à ˆ>؉Fä˜f¤cÔ*Ü Ð!5¸Ñ!>Ó?Ð?ÝÜ×#Ñ# FÔ+àˆŒ Ø ˆÔØ#$ˆÔ ؈ŒØ)-¯©×)=Ñ)=Ó)?Ð?ˆŒ˜œÜ! $§+¡+¨wÓ7ˆŒØ �‰˜ &¨'Ø&¨ õ 7rcóz—|�'t|t«stdt|«›�«‚|dvrt d|›�«‚y)Nzillegal newline type: )Nr(r÷rõrözillegal newline value: )r+r/r1Útyper4)rfrGs rrzTextIOWrapper._check_newline÷s?€Ø Ð ¤z°'¼3Ô'?ݼ$¸w¼-ÐIÓJÐ JØ Ð8Ñ 8ݹGÐEÓFÐ Fð 9rcó¶—||_||_d|_d|_d|_| |_|du|_||_|dk7|_|xstj|_ ||_ ||_ |jrR|j«rA|j j#«}|dk7r! |j%«j'd«yyyy#t($rYywxYw)Nçr(r)Ú _encodingÚ_errorsÚ_encoderÚ_decoderÚ _b2cratioÚ_readuniversalÚ_readtranslateÚ_readnlÚ_writetranslater-ÚlinesepÚ_writenlÚ_line_bufferingÚ_write_throughrÒr�rUrqÚ _get_encoderrr)rfrrFrGrSrÚpositions rrzTextIOWrapper._configureýsÔ€à!ˆŒØˆŒ ؈Œ ؈Œ ؈Œà")˜kˆÔØ%¨˜oˆÔ؈Œ Ø&¨"™}ˆÔØÒ-¤2§:¡:ˆŒ à-ˆÔØ+ˆÔð �>Š>˜dŸm™mœoØ—{‘{×'Ñ'Ó)ˆHؘ1Š}ðØ×%Ñ%Ó'×0Ñ0°Õ3ðð.ˆ>øô #òáðúsÂ)C à CÃCcór—dj|jj|jj«} |j}|dj|«z } |j }|dj|«z }|dj|j«zS#t $rYŒJwxYw#t $rYŒ8wxYw)Nz<{}.{}z name={0!r}z mode={0!r}z encoding={0!r}>)rrer^r_rgr=rBr)rfrRrgrBs rrzTextIOWrapper.__repr__!sµ€Ø—‘ §¡×!:Ñ!:Ø!%§¡×!<Ñ!<ó>ˆð 1Ø—9‘9ˆDð �m×*Ñ*¨4Ó0Ñ 0ˆFð 1Ø—9‘9ˆDð �m×*Ñ*¨4Ó0Ñ 0ˆFØÐ*×1Ñ1°$·-±-Ó@Ñ@Ð@øôò Ù ð ûô ò Ù ð ús#¼ BÁ B* B'Â&B'Â* B6Â5B6có—|jSr±)r"rps rrzTextIOWrapper.encoding2s €à�~‰~Ðrcó—|jSr±)r#rps rrFzTextIOWrapper.errors6ó €à�|‰|Ðrcó—|jSr±)r-rps rrSzTextIOWrapper.line_buffering:s€à×#Ñ#Ð#rcó—|jSr±)r.rps rrzTextIOWrapper.write_through>s€à×"Ñ"Ð"rcó—|jSr±)r rps rrUzTextIOWrapper.bufferBr4r)rrFrGrSrcóþ—|j�|€ |€|tur td«‚|€|€ |j}n!d}nt |t «st d|z«‚|€ |j}n3t |t «st d|z«‚|dk(r|j«}|tur |j}|j|«|€ |j}|€ |j}|j«|j|||||«y)z`Reconfigure the text stream with new parameters. This also flushes the stream. NzPIt is not possible to set the encoding or newline of stream after the first readr r rr)r%ÚEllipsisr\r#r+r/r1r"rr)rrSrryr)rfrrFrGrSrs rÚ reconfigurezTextIOWrapper.reconfigureFs €ð �M‰MÐ %ØÐ)¨VÐ-?ؤxÑ/Ü&ð'ó(ð (ð ˆ>ØÐØŸ™‘à!‘ܘF¤CÔ(ÜÐ0°6Ñ9Ó:Ð :à Ð Ø—~‘~‰Hä˜h¬Ô,ÜÐ 6¸Ñ AÓBÐBؘ8Ò#Ø×4Ñ4Ó6�à ”hÑ Ø—l‘lˆGØ ×јGÔ$à Ð !Ø!×0Ñ0ˆNØ Ð Ø ×.Ñ.ˆMà � ‰ Œ Ø �‰˜ &¨'Ø&¨ õ 7rcóH—|jr td«‚|jS)Nr’)r}r4rÒrps rr�zTextIOWrapper.seekableqs€Ø �;Š;ÜÐ<Ó=Ð =Ø�~‰~Ðrcó6—|jj«Sr±)rUrˆrps rrˆzTextIOWrapper.readablevr~rcó6—|jj«Sr±)rUr�rps rr�zTextIOWrapper.writableyr~rcóZ—|jj«|j|_yr±)rUryrÒrrps rryzTextIOWrapper.flush|s€Ø � ‰ ×ÑÔØŸ™ˆ� rcóÌ—|j�9|js, |j«|jj«yyy#|jj«wxYwr±)rUr}ryrCrps rrCzTextIOWrapper.close€sL€Ø �;‰;Ð "¨4¯;ª;ð $Ø— ‘ ” à— ‘ ×!Ñ!Õ#ð ,7Ð "øð— ‘ ×!Ñ!Õ#úròcó.—|jjSr±)rUr}rps rr}zTextIOWrapper.closed‡r„rcó.—|jjSr±)rUrgrps rrgzTextIOWrapper.name‹s€à�{‰{×ÑÐrcó6—|jj«Sr±)rUr:rps rr:zTextIOWrapper.fileno�ó€Ø�{‰{×!Ñ!Ó#Ð#rcó6—|jj«Sr±)rUr7rps rr7zTextIOWrapper.isatty’rCrcóÌ—|jr td«‚t|t«s"t d|j j z«‚t|«}|jxs |jxrd|v}|r7|jr+|jdk7r|jd|j«}|jxs|j«}|j|«}|jj!|«|jr|sd|vr|j#«|j$�|j'd«d|_|j(r|j(j+«|S)zWrite data, where s is a strr zcan't write %s to text streamr÷rõNr()r}r4r+r/r1rer]r3r*r-r,rür$r/ÚencoderUr¿ryrÚ_set_decoded_charsr%r )rfráÚlengthÚhaslfÚencoderr's rr¿zTextIOWrapper.write•s€à �;Š;ÜÐ3Ó4Ð 4ܘ!œSÔ!ÜÐ;ØŸK™K×0Ñ0ñ1ó2ð 2ä�Q“ˆØ×%Ñ%Ò=¨×)=Ñ)=ÒLÀ4È1À9ˆÙ �T×)Ò)¨d¯m©m¸tÒ.CØ— ‘ ˜$ § ¡ Ó.ˆAØ—-‘-Ò6 4×#4Ñ#4Ó#6ˆà �N‰N˜1Ó ˆØ � ‰ ×ј!ÔØ × Ò ¡U¨d°a©iØ �J‰JŒLØ �>‰>Ð %Ø × #Ñ # BÔ 'Ø!ˆDŒNØ �=Š=Ø �M‰M× Ñ Ô !؈ rcó†—tj|j«}||j«|_|jSr±)rìÚgetincrementalencoderr"r#r$)rfÚ make_encoders rr/zTextIOWrapper._get_encoder­s0€Ü×3Ñ3°D·N±NÓCˆ Ù$ T§\¡\Ó2ˆŒ Ø�}‰}Ðrcóº—tj|j«}||j«}|jrt ||j «}||_|Sr±)rìÚgetincrementaldecoderr"r#r'rêr(r%)rfÚ make_decoderrïs rÚ _get_decoderzTextIOWrapper._get_decoder²sK€Ü×3Ñ3°D·N±NÓCˆ Ù˜tŸ|™|Ó,ˆØ × Ò Ü/°¸×9LÑ9LÓMˆG؈Œ ؈rcó —||_d|_y)zSet the _decoded_chars buffer.rN)rr)rfÚcharss rrGz TextIOWrapper._set_decoded_chars½s€à#ˆÔØ#$ˆÕ rcó¢—|j}|€|j|d}n|j|||z}|xjt|«z c_|S)z'Advance into the _decoded_chars buffer.N)rrr3)rfr¢ÚoffsetrSs rÚ_get_decoded_charsz TextIOWrapper._get_decoded_charsÂsT€à×)Ñ)ˆØ ˆ9Ø×'Ñ'¨¨Ð0‰Eà×'Ñ'¨¨v¸©zÐ:ˆEØ × Ò ¤C¨£JÑ.Õ Øˆ rcóJ— ddl}|j«S#t$rYywxYw)Nrr)rÚ getencodingÚ ImportError)rfrs rrz"TextIOWrapper._get_locale_encodingÌs/€ð (Û ð ×%Ñ%Ó'Ð 'øô ò áð ús ‚– "¡"cób—|j|kr td«‚|xj|zc_y)z!Rewind the _decoded_chars buffer.z"rewind decoded_chars out of boundsN)rÚAssertionErrorrms rÚ_rewind_decoded_charsz#TextIOWrapper._rewind_decoded_charsÕs-€à × #Ñ # aÒ 'Ü Ð!EÓFÐ FØ × Ò  AÑ%Ö rcó&—|j€ td«‚|jr|jj«\}}|jr&|j j |j«}n%|j j|j«}| }|jj||«}|j|«|r't|«t|j«z |_ nd|_ |jr |zf|_| S)zQ Read and decode the next chunk of data from the BufferedReader. z no decoderr!)r%r4rrrrUrÕÚ _CHUNK_SIZEr«rørGr3rr&r)rfÚ dec_bufferÚ dec_flagsÚ input_chunkÚeofÚ decoded_charss rÚ _read_chunkzTextIOWrapper._read_chunkÛsè€ð �=‰=Рܘ\Ó*Ð *à �=Š=ð%)§M¡M×$:Ñ$:Ó$<Ñ !ˆJ˜ ð �?Š?ØŸ+™+×+Ñ+¨D×,<Ñ,<Ó=‰KàŸ+™+×*Ñ*¨4×+;Ñ+;Ó<ˆK؈oˆØŸ ™ ×,Ñ,¨[¸#Ó>ˆ Ø ×Ñ  Ô.Ù Ü  Ó-´°D×4GÑ4GÓ0HÑHˆD�Nà ˆDŒNà �=Š=ð(¨°kÑ)AÐBˆDŒNàˆwˆrcóH—||dzz|dzz|dzzt|«dzzS)Né@é€éÀé)r)rfr0r`Ú bytes_to_feedÚneed_eofÚ chars_to_skips rÚ _pack_cookiezTextIOWrapper._pack_cookie s=€ð˜I r™MÑ*¨m¸SÑ.@ÑAؘsÑ"ñ$Ü&*¨8£n°cÑ&9ñ:ð ;rcóš—t|d«\}}t|d«\}}t|d«\}}t|d«\}}|||t|«|fS)Nl)Údivmodr)rfÚbigintÚrestr0r`rjrkrls rÚ_unpack_cookiezTextIOWrapper._unpack_cookie sY€Ü ¨Ó.‰ˆˆhÜ   uÓ-‰ˆˆiÜ$ T¨5Ó1шˆmÜ"(¨¨uÓ"5ш�-ؘ M´4¸³>À=ÐPÐPrc ó2—|js td«‚|js td«‚|j «|j j «}|j}|� |j€|jr td«‚|S|j\}}|t|«z}|j}|dk(r|j||«S|j«} t|j |z«}d}|dkDrs|j#d|f«t|j%|d|««} | |kr.|j«\} } | s| }|| z}n6|t| «z}d}n ||z}|dz}|dkDrŒsd}|j#d|f«||z} |} |dk(r#|j| | «|j#|«Sd}d}d}t'|t|««D][}|dz }|t|j%|||dz««z }|j«\}}|s||kr| |z } ||z}|dd}}} ||k\sŒ[n2|t|j%dd ¬ ««z }d }||kr td «‚|j| | |||«|j#|«S#|j#|«wxYw) Nú!underlying stream is not seekablez(telling position disabled by next() callzpending decoded textrr rr FTróz'can't reconstruct logical file position)rÒr\rr<ryrUrqr%rrr[r3rrmrr,r&rrøÚrange)rfr0rïr`Ú next_inputrlÚ saved_stateÚ skip_bytesÚ skip_backr¢r'ÚdÚ start_posÚ start_flagsÚ bytes_fedrkÚ chars_decodedÚir_s rrqzTextIOWrapper.tell s߀Ø�~Š~Ü&Ð'JÓKÐ KØ�}Š}ÜÐDÓEÐ EØ � ‰ Œ Ø—;‘;×#Ñ#Ó%ˆØ—-‘-ˆØ ˆ?˜dŸn™nÐ4Ø×"Ò"ä$Ð%;Ó<Ð<؈Oð!%§¡Ñˆ �:Ø”C˜ “OÑ#ˆð×0Ñ0ˆ Ø ˜AÒ à×$Ñ$ X¨yÓ9Ð 9ð×&Ñ&Ó(ˆ ðF *ô˜TŸ^™^¨mÑ;Ó<ˆJ؈Ià˜q’.Ø× Ñ  # yÐ!1Ô2䘟™ z°+°:Ð'>Ó?Ó@�ؘ Ò%Ø"×+Ñ+Ó-‘D�A�qÙà$%˜ Ø%¨Ñ*˜ Øà¤# a£&Ñ(�JØ !‘Ið )Ñ+�JØ )¨A¡ �Ið#˜q“.ð&� Ø× Ñ  # yÐ!1Ô2ð! :Ñ-ˆIØ#ˆKØ Ò!à×(Ñ(¨°KÓ@ð@ × Ñ ˜[Õ )ð5ˆI؈HàˆMܘ:¤s¨:£Ö7�ؘQ‘� ؤ W§^¡^°J¸qÀÀ1ÁÐ4EÓ%FÓ!GÑG� Ø(/×(8Ñ(8Ó(:Ñ%� ˜IÙ! m°}Ò&Dà Ñ*�IØ! ]Ñ2�MØ._reset_encoderˆ sSø€ð $ØŸ-™-Ò>¨4×+<Ñ+<Ó+>�ð ˜q’=Ø×$Ñ$ QÕ'à—M‘M•Oøôò áð úsƒA Á AÁAr+rtrz#can't do nonzero cur-relative seeksz#can't do nonzero end-relative seeksr(zunsupported whence (Ú)r'rz#can't restore logical file position)r}r4rÒr\r rqr ryrUrjrGrr%r rrrQrr«rør3rr<r) rfÚcookiernr„r0r{r`rjrkrlras ` rrjzTextIOWrapper.seek‡ s-ø€ô $ð �;Š;ÜÐ2Ó3Ð 3Ø�~Š~Ü&Ð'JÓKÐ KØ ”XÒ Ø˜Š{Ü*Ð+PÓQÐQðˆFØ—Y‘Y“[‰FØ ”xÒ Ø˜Š{Ü*Ð+PÓQÐQØ �J‰JŒLØ—{‘{×'Ñ'¨¨6Ó2ˆHØ × #Ñ # BÔ 'Ø!ˆDŒNØ�}Š}Ø— ‘ ×#Ñ#Ô%Ù ˜8Ô $؈OØ �QŠ;ݺ&ÐBÓCÐ CØ �AŠ:ݹFÐDÓEÐ EØ � ‰ Œ ð × Ñ  Ó 'ñ Eˆ �9˜m¨X°}ð � ‰ ×јÔ#Ø ×Ñ Ô#؈Œð �QŠ;˜4Ÿ=š=Ø �M‰M× Ñ Õ !Ø �]Š]™i©=Ø ŸM™MÒ@¨T×->Ñ->Ó-@ˆDŒMØ �M‰M× "Ñ " C¨Ð#3Ô 4Ø'¨Ð-ˆDŒNá àŸ+™+×*Ñ*¨=Ó9ˆKØ × #Ñ #Ø— ‘ ×$Ñ$ [°(Ó;ô =à'¨Ð5ˆDŒNô�4×&Ñ&Ó'¨-Ò7ÜÐCÓDÐDØ'4ˆDÔ $á�vÔØˆ rcób—|j«|€d}n |j}|«}|jxs|j «}|dkrb|j «|j|jj«d¬«z}|j�|jd«d|_ |Sd}|j |«}t|«|krD|sB|j« }||j |t|«z «z }t|«|kr|sŒB|S#t$rt|›d�«‚wxYw)Nr*r§rTrór(F)r‹r©r=r1r%rQrVrørUr«rrGr3rd)rfr£r­rïrRrbs rr«zTextIOWrapper.readÒ s1€Ø ×ÑÔØ ˆ<؉Dð $Ø!Ÿ^™^� ñ"“|�Ø—-‘-Ò6 4×#4Ñ#4Ó#6ˆØ �!Š8à×-Ñ-Ó/Ø—n‘n T§[¡[×%5Ñ%5Ó%7¸t�nÓDñEˆFà�~‰~Ð)Ø×'Ñ'¨Ô+Ø!%�”؈MðˆCØ×,Ñ,¨TÓ2ˆFÜ�f“+ Ò$©SØ×*Ñ*Ó,Ð,�ؘ$×1Ñ1°$¼¸V»Ñ2DÓEÑE�ô�f“+ Ò$ªSðˆMøô)"ò ?Ü 4 (Ð*<Ð =Ó>Ð>ð ?ús — DÄD.cót—d|_|j«}|sd|_|j|_t‚|S)NF)rr¯rrÒr´rµs rr·zTextIOWrapper.__next__ï s4€ØˆŒ Ø�}‰}‹ˆÙØ!ˆDŒNØ ŸN™NˆDŒMÜР؈ rcó$—|jr td«‚|€d}n |j}|«}|j «}d}|j s|j«dx}} |jr*|jd|«}|dk\r|dz}�n;t|«}n¯|jrj|jd|«}|jd|«}|dk(r|dk(r t|«}ni|dz}nã|dk(r|dz}nØ||kr|dz}nÍ||dzk(r|dz}n¿|dz}n¹|j|j«}|dk\r|t|j«z}n€|dk\rt|«|k\r|}nj|j«r|jrn|j«rŒ|jr||j «z }n|jd «d|_|S�Œe|dk\r||kDr|}|j#t|«|z «|d|S#t$rt |›d�«‚wxYw) Nrr*r§rr÷r rõr r()r}r4r©r=r1rVr%rQr(rŸr3r'r)rdrrGrr\) rfr£r­r¶ÚstartrmÚendposÚnlposÚcrposs rr¯zTextIOWrapper.readlineø sN€Ø �;Š;ÜÐ4Ó5Ð 5Ø ˆ<؉Dð $Ø!Ÿ^™^� ñ"“|�ð×&Ñ&Ó(ˆàˆà�}Š}Ø × Ñ Ô àЈˆfØØ×"Ò"à—i‘i  eÓ,�ؘ!’8Ø  1™W�FÙä ›I‘Eà×$Ò$ð Ÿ ™  $¨Ó.�ØŸ ™  $¨Ó.�ؘB’;Ø ’{ä # D£ ™ð"'¨¡˜ØØ˜b’[à" Q™Y�FØØ˜U’]à" Q™Y�FØØ˜e a™iÒ'à" Q™Y�FØð# Q™Y�FØð—i‘i § ¡ Ó-�ؘ!’8Ø ¤3 t§|¡|Ó#4Ñ4�FØà�qŠyœS ›Y¨$Ò.Ø�Øð×"Ñ"Ô$Ø×&Ò&Øð×"Ñ"Õ$ð×"Ò"ؘ×/Ñ/Ó1Ñ1‘ð×'Ñ'¨Ô+Ø!%�”Ø� ñ}ð@ �1Š9˜ $šØˆFð ×"Ñ"¤3 t£9¨vÑ#5Ô6Ø�G�Vˆ}Ðøôg"ò ?Ü 4 (Ð*<Ð =Ó>Ð>ð ?ús ž G7Ç7HcóJ—|jr|jjSdSr±)r%rçrps rrçzTextIOWrapper.newlinesU s€à)-¯ªˆt�}‰}×%Ñ%Ð@¸DÐ@r)NNNFFr±)rrFrrÁ)-r]r^r_rÃr^r rêrrrrÄrrFrSrrUr9r:r�rˆr�ryrCr}rgr:r7r¿r/rQrGrVrr\rdrmrrrqrsrârjr«r·r¯rçr`rrrArAµs~„ñð,€Kð€Gð DHØ5:ó7òBGð >BØ7<óòHAð"ñóððñóððñ$óð$ðñ#óð#ðñóðð"¨$¸Ø#'°tô)7òVò &ò&ò'ò$ðñ"óð"ðñ óð ò$ò$òò0ò ò%ó ò(ò&ò (ðT01ØJKó;òQòa*óF)ò óIóVò:ó[ðzñAóñArrAcóV‡—eZdZdZdˆfd„ Zd„Zd„Zed„«Zed„«Z d„Z ˆxZ S) ÚStringIOz»Text I/O implementation using an in-memory buffer. The initial_value argument sets the value of object. The newline argument is like the one of TextIOWrapper's constructor. có•—tt|� t«dd|¬«|€d|_|�`t |t «s-tdjt|«j««‚|j|«|jd«yy)NrÚ surrogatepass)rrFrGFz*initial_value must be str or None, not {0}r) rr�rêr r*r+r/r1rrr]r¿rj)rfÚ initial_valuerGres €rrêzStringIO.__init__a s†ø€Ü Œh˜Ñ&¤w£yØ07Ø.=Ø/6ð 'ô 8ð ˆ?Ø#(ˆDÔ Ø Ð $ܘm¬SÔ1ÜÐ Lß!'¡¬¨]Ó(;×(DÑ(DÓ!EóGðGà �J‰J�}Ô %Ø �I‰I�a�Lð %rcóD—|j«|jxs|j«}|j«}|j « |j |j j«d¬«|j|«S#|j|«wxYw)NTró) ryr%rQrr rørUrr)rfrïÚ old_states rrzStringIO.getvalueq sx€Ø � ‰ Œ Ø—-‘-Ò6 4×#4Ñ#4Ó#6ˆØ×$Ñ$Ó&ˆ Ø� ‰ Œð (Ø—>‘> $§+¡+×"6Ñ"6Ó"8À�>ÓEà × Ñ ˜YÕ 'øˆG× Ñ ˜YÕ 'ús Á*B  Bcó,—tj|«Sr±)Úobjectrrps rrzStringIO.__repr__{ s€ô�‰˜tÓ$Ð$rcó—yr±r`rps rrFzStringIO.errors€ ó€àrcó—yr±r`rps rrzStringIO.encoding„ r™rcó&—|jd«y)Nrârkrps rrâzStringIO.detachˆ s€à ×ј(Õ#r)r(r÷) r]r^r_rÃrêrrrÄrFrrâr2r3s@rr�r�Z sDø„ñõ ò (ò%ð ñóððñóðö$rr�)r )r"r*NNNTN)9rÃr-Úabcrìrcr¬rÚ_threadrr9ÚplatformÚmsvcrtrr²Úiorrr r rYr¨Úaddr Ú SEEK_DATAr8rbrÚdev_moder~rrÚ staticmethodrVrZÚ open_coder=r\r<r4ÚABCMetarbÚregisterrÇÚ_ior6rÑrår r@r?rrr>rÞrírêrAr�r`rrÚr©saðñó Û Û Û Û Û å)؇<�<Ð&Ñ&Þ*à€Hã ß6Ó6âÐÙ ˆ2ˆ{ÔØ×јŸ™Ô&Ø×јŸ™Ô&ðÐð"€ñ$ CÐ);Ó<ÒRÀÇ Á ×@RÑ@RÐà(€ óðBØ=AØ,0òKóðKò^ð (Ø— ‘ €Ið Ø×2Ñ2Ðô _�s—{‘{õ_ðB ‡ � ×Ñ�6Ôô8#�ô8#ðt‡ � ×Ñ�iÔ ÝØ ×Ñ�6Ôôe$�Vôe$ðN×Ñ×ј>Ô*ôh!�~ôh!ôVLˆnôLô^FÐ%ôFôPf!Ð%ôf!ôRF"�^ôF"ôRG-�^ ^ôG-ôTTˆYôTôn >�ô>ð@‡ � ×Ñ�zÔ"ôR × 9Ñ 9ôRôjb A�Jôb AôJ0$ˆ}õ0$øðYIò(Ø'ƒIð(ûðò ô ˜w¨ ÷ ð ús$à Hà H ÈHÈHÈ H5È4H5