
    9c                     n    d dl Z d dlZd dlZ G d dej                  j
                  j                        Zy)    Nc                   (    e Zd ZdgZdZd Zd Zd Zy)	TarPlugin	Signaturei   c                 <    |j                  d      }|dk(  r|S |d| S )zL
        Convert a null-terminated string field to a python string.
         N)find)selfsps      5/usr/lib/python3/dist-packages/binwalk/plugins/tar.pyntszTarPlugin.nts   s(    
 FF4L7H!u    c                 
   |d   t        d      k7  r"	 t        | j                  |      xs dd      }|S d}t	        t        |      dz
        D ]  }|dz  }|t        ||dz            z  } |S # t        $ r t        d      w xY w)z<
        Convert a number field to a python number.
        r      0   zinvalid tar header   )chrintr   
ValueErrorrangelenord)r
   r   nis       r   ntizTarPlugin.nti   s     Q43t97*sA. 	 A3q6A:& #aS1q5]"#   7 !5667s   A- -Bc                    |j                   j                         j                  d      rd}|j                  }| j                  j
                  j                  |j                  j                  |j                        }|r|j                  | j                        }|dd dk(  r	 | j                  |dd       }t        j                  |t        | j                        z        d	z   }|t!        | j                  |z        z  }||j                  j"                  k\  rd
}n|j%                  |       nd
}|r||_        y y # t        $ r}d
}Y d }~d }~ww xY w)Nzposix tar archiveT)offseti  i  ustar|      r   F)descriptionlower
startswithr   moduleconfig	open_filefilepathreadTAR_BLOCKSIZEr   mathceilfloatr   r   sizeseekjump)	r
   resultis_tarfile_offsetfdbufr0   blockses	            r   scanzTarPlugin.scan)   s0   ##%001DEF --K##--fkk.>.>v}}-UBggd001 s3<7*#xxC5!%4%8J8J2K+K!Lq!P  3t'9'9F'B#CCK"fkk&6&66!&,"F1 4 &FK? F  & !&s   $AD= =	EEEN)__name__
__module____qualname__MODULESr,   r   r   r:    r   r   r   r      s    mG M$ &r   r   )timer-   binwalk.core.pluginbinwalkcorepluginPluginr   r?   r   r   <module>rF      s,      C&##** C&r   