U e5d;�@sGdd�d�ZdS)c@sZeZdZddd�Zdd�Zdd�Zd d �Zd d �Zddd�Zdd�Z ddd�Z dd�Z dS)�ChunkTFc Cs�ddl}d|_||_|rd}nd}||_|�d�|_t|j�dkrFt�z |�|d|�d��d|_ Wn|j k r�td�YnX|r�|j d|_ d|_ z|j� �|_ Wnttfk r�d|_YnXd|_dS) N�F�>�<��L�T)�struct�closed�align�file�read� chunkname�len�EOFErrorZ unpack_from� chunksize�error� size_read�tell�offset�AttributeError�OSError�seekable)�selfr r Z bigendianZ inclheaderrZstrflag�r�/usr/lib64/python3.8/chunk.py�__init__4s,     zChunk.__init__cCs|jS�N)r �rrrr�getnameNsz Chunk.getnamecCs|jSr)rrrrr�getsizeRsz Chunk.getsizecCs |jsz |��W5d|_XdS)NT)r �skiprrrr�closeVs z Chunk.closecCs|jrtd��dS)N�I/O operation on closed fileF)r � ValueErrorrrrr�isatty]sz Chunk.isattyrcCsv|jrtd��|jstd��|dkr0||j}n|dkrB||j}|dksT||jkrXt�|j�|j |d�||_dS)Nr"z cannot seek��r) r r#rrrr� RuntimeErrorr �seekr)r�pos�whencerrrr(bs  z Chunk.seekcCs|jrtd��|jS)Nr")r r#rrrrrrusz Chunk.tell�����cCs�|jrtd��|j|jkrdS|dkr2|j|j}||j|jkrN|j|j}|j�|�}|jt|�|_|j|jkr�|jr�|jd@r�|j�d�}|jt|�|_|S)Nr"�rr%)r r#rrr r rr )r�size�data�dummyrrrr zs$     �� z Chunk.readcCs�|jrtd��|jrnzD|j|j}|jr:|jd@r:|d}|j�|d�|j||_WdStk rlYnX|j|jkr�t d|j|j�}|� |�}|snt �qndS)Nr"r%i ) r r#rrrr r r(r�minr r)r�nr/rrrr �s"    z Chunk.skipN)TTF)r)r+) �__name__� __module__� __qualname__rrrr!r$r(rr r rrrrr3s   rN)rrrrr�3r,