Ë
    Dü´j|,  ã                   óú  — U d Z ddlmZ dZeeeef   df   ed<   dZdZ	eedf   ed<   d	d
ddœZ
eeef   ed<   dddœZeeef   ed<   dZdZdZeeeef   df   ed<   dZeeeef   df   ed<    eh d£«      Zee   ed<   dZdZ eddh«      Zee   ed<    eddh«      Zee   ed <    ed!d"h«      Zee   ed#<    eh d$£«      Zee   ed%<    ed&h«      Zee   ed'<   d(Zd)Zd*ed+efd,„Zd-ed+efd.„Zd*ed+ed/z  fd0„Zy/)1zÔMagic number detection for binary file types.

Note: ``from __future__ import annotations`` is intentionally omitted because
this module is compiled with mypyc, which does not support PEP 563 string
annotations.
é    ©ÚDetectionResult)()s   ‰PNG

z	image/png)s   GIF87aú	image/gif)s   GIF89ar   )s   MM *ú
image/tiff)s   II* r   )s   8BPSzimage/vnd.adobe.photoshop)s   qoifz	image/qoi)s   BMz	image/bmp)s   ÿØÿz
image/jpeg)s      JXL 
‡
ú	image/jxl)s   ÿ
r   )s      zimage/vnd.microsoft.icon)s   ID3z
audio/mpeg)s   MThdz
audio/midi)s   OggSz	audio/ogg)s   fLaCz
audio/flac)s   Eß£z
video/webm)s   ‹zapplication/gzip)s   BZhzapplication/x-bzip2)s   ý7zXZ zapplication/x-xz)s   7z¼¯'zapplication/x-7z-compressed)s   Rar! úapplication/vnd.rar)s   Rar! r   )s   (µ/ýzapplication/zstd)s   %PDF-zapplication/pdf)s   SQLite format 3 zapplication/x-sqlite3)s   ARROW1z!application/vnd.apache.arrow.file)s   PAR1zapplication/vnd.apache.parquet)s    asmzapplication/wasm)s   dex
zapplication/vnd.android.dex)s   ELFzapplication/x-elf)s   þíúÎúapplication/x-mach-binary)s   þíúÏr	   )s   Îúíþr	   )s   Ïúíþr	   )s   MZz-application/vnd.microsoft.portable-executable)s   wOFFz	font/woff)s   wOF2z
font/woff2)s   OTTOzfont/otf)s      zfont/ttf.Ú_MAGIC_NUMBERSi  )s   ustar s   ustar Ú_TAR_SIGNATURESz
image/webpz	audio/wavzvideo/x-msvideo)s   WEBPs   WAVEs   AVI Ú_RIFF_SUBTYPESz
audio/aiff)s   AIFFs   AIFCÚ_FORM_SUBTYPESs   PKi   ))s   xl/zAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet)s   word/zGapplication/vnd.openxmlformats-officedocument.wordprocessingml.document)s   ppt/zIapplication/vnd.openxmlformats-officedocument.presentationml.presentation)s   META-INF/MANIFEST.MFzapplication/java-archive)s   AndroidManifest.xmlz'application/vnd.android.package-archive)s   META-INF/container.xmlzapplication/epub+zipÚ_ZIP_FILENAME_PREFIXES))s   .dist-info/zapplication/x-wheel+zipÚ_ZIP_FILENAME_SUFFIXES>   ó'   application/vnd.oasis.opendocument.textó+   application/vnd.oasis.opendocument.graphicsó.   application/vnd.oasis.opendocument.spreadsheetó/   application/vnd.oasis.opendocument.presentationÚ_OPENDOCUMENT_MIMESs   ftypé   s   avifs   avisÚ_FTYP_AVIF_BRANDSs   heics   heixÚ_FTYP_HEIC_BRANDSs   mif1s   msf1Ú_FTYP_HEIF_BRANDS>   ó   F4A ó   M4A ó   M4B Ú_FTYP_AUDIO_BRANDSs   qt  Ú_FTYP_QUICKTIME_BRANDSs   Êþº¾é   ÚdataÚreturnc                 óL  — | dt          }d}	 |j                  t        |«      }|dk(  st        |«      |dz   k  r	 yt        j                  ||dz   |dz    d«      }t        j                  ||dz   |dz    d«      }|dz   }t        |«      ||z   k  r	 y||||z    }t        D ]  \  }}	|j                  |«      sŒ|	c S  t        D ]  \  }
}	|
|v sŒ|	c S  |dk(  r}t        j                  ||d	z   |d
z    d«      }|dk(  rY||z   |z   }t        j                  ||dz   |dz    d«      }t        |«      ||z   k\  r!||||z    }|t        v r|j                  d«      S t        j                  ||dz   |d	z    d«      }|d	z  rdnt        j                  ||dz   |dz    d«      }||z   |z   |z   }�Œ™)aÕ  Classify a ZIP file by scanning entry filenames and content.

    Scans for local file header signatures within the first
    ``_ZIP_SCAN_LIMIT`` bytes.  For each entry, checks the filename
    against known prefixes/suffixes, and for ``mimetype`` entries reads
    the uncompressed content to detect OpenDocument formats.

    **Limitation:** when an entry has the data-descriptor flag (bit 3)
    set, the compressed size in the header is 0 and we cannot skip past
    the entry content.  The scan may find spurious PK local file header
    signatures inside compressed data.  In practice deflate output rarely produces
    valid ZIP local file headers with recognizable filenames, so false
    positives are unlikely.
    Nr   éÿÿÿÿé   é   é   Úlittles   mimetypeé   é
   é   Úasciié   é   zapplication/zip)Ú_ZIP_SCAN_LIMITÚfindÚ_ZIP_SIGNATUREÚlenÚintÚ
from_bytesr   Ú
startswithr   r   Údecode)r   ÚscanÚoffsetÚidxÚname_lenÚ	extra_lenÚ
name_startÚnameÚprefixÚmimeÚsuffixÚcompressionÚcontent_startÚcontent_lenÚcontentÚflagsÚcontent_sizes                    úT/root/workspace/ytshorts/venv/lib/python3.12/site-packages/chardet/pipeline/magic.pyÚ_classify_ziprF   –   s  € ð Ð ”Ð!€DØ€FØ
Ø�i‰iœ¨Ó/ˆØ�"Š9œ˜D›	 C¨"¡HÒ,ØðF ôE —>‘> $ s¨R¡x°#¸±(Ð";¸XÓFˆÜ—N‘N 4¨¨b©°3¸±8Ð#<¸hÓGˆ	Ø˜2‘Xˆ
Üˆt‹9�z HÑ,Ò,Øð< ð; �J ¨hÑ!6Ð7ˆä2ò 	‰LˆF�DØ�‰˜vÕ&Ø’ð	ô 3ò 	‰LˆF�DØ˜Š~Ø’ð	ð �;ÒÜŸ.™.¨¨c°A©g¸¸b¹Ð)AÀ8ÓLˆKØ˜aÒØ *¨XÑ 5¸	Ñ A�Ü!Ÿn™n¨T°#¸±(¸SÀ2¹XÐ-FÈÓQ�Ü�t“9 °Ñ ;Ò;Ø" =°=À;Ñ3NÐO�GØÔ"5Ñ5Ø&Ÿ~™~¨gÓ6Ð6ô —‘˜t C¨!¡G¨c°A©gÐ6¸ÓAˆà˜’‰A¤S§^¡^°D¸¸r¹ÀCÈ"ÁHÐ4MÈxÓ%Xð 	ð ˜hÑ&¨Ñ2°\ÑAˆñK ó    r=   c                 ó    — t        d dd | ¬«      S )Ng      ð?)ÚencodingÚ
confidenceÚlanguageÚ	mime_typer   )r=   s    rE   Ú_make_resultrM   Ð   s   € Ü D°SÀ4ÐSWÔXÐXrG   Nc                 ó<  — | syt        | «      dk\  r¶| t        t        dz    t        k(  rŸt        j	                  | dd d«      }d|cxk  rt        | «      k  rrn no| dd }|t
        v rt        d«      S |t        v rt        d«      S |t        v rt        d«      S |t        v rt        d	«      S |t        v rt        d
«      S t        d«      S | dd dk(  r3t        | «      dk\  r%t        j                  | dd «      }|�t        |«      S | dd dk(  r3t        | «      dk\  r%t        j                  | dd «      }|�t        |«      S | j                  t        «      rt        t!        | «      «      S | dd t"        k(  rFt        | «      dk\  r8t        j	                  | dd d«      }|t$        k  rt        d«      S t        d«      S t&        D ]#  \  }}| j                  |«      sŒt        |«      c S  t        | «      t(        dz   k\  r#| t(        t(        dz    }|t*        v rt        d«      S y)zôCheck *data* for known binary file magic numbers.

    :param data: The raw byte data to examine.
    :returns: A :class:`DetectionResult` with ``encoding=None`` and the
        identified MIME type, or ``None`` if no magic number matches.
    Né   r   Úbigr'   z
image/avifz
image/heicz
image/heifz	audio/mp4zvideo/quicktimez	video/mp4s   RIFFs   FORMr	   zapplication/java-vmr+   zapplication/x-tar)r0   Ú_FTYP_OFFSETÚ_FTYP_MARKERr1   r2   r   rM   r   r   r   r   r   Úgetr   r3   r/   rF   Ú	_CAFEBABEÚ_CAFEBABE_MAX_FAT_ARCHESr
   Ú_TAR_OFFSETr   )r   Úbox_sizeÚbrandÚsubtypeÚ	nfat_archr<   r=   Útar_sigs           rE   Údetect_magicr\   Ô   s"  € ñ Øô ˆ4ƒy�B‚˜4¤¬|¸aÑ/?Ð@ÄLÒPÜ—>‘> $ r¨ (¨EÓ2ˆØ�Ô%œC ›IÕ%Ø˜˜2�JˆEØÔ)Ñ)Ü# LÓ1Ð1ØÔ)Ñ)Ü# LÓ1Ð1ØÔ)Ñ)Ü# LÓ1Ð1ØÔ*Ñ*Ü# KÓ0Ð0ØÔ.Ñ.Ü#Ð$5Ó6Ð6Ü Ó,Ð,ð ˆBˆQ€x�7Òœs 4›y¨BšÜ ×$Ñ$ T¨!¨B ZÓ0ˆØÐÜ Ó(Ð(ð ˆBˆQ€x�7Òœs 4›y¨BšÜ ×$Ñ$ T¨!¨B ZÓ0ˆØÐÜ Ó(Ð(ð ‡�”~Ô&ÜœM¨$Ó/Ó0Ð0ð ˆBˆQ€x”9Ò¤ T£¨a¢Ü—N‘N 4¨¨! 9¨eÓ4ˆ	ØÔ0Ò0ÜÐ ;Ó<Ð<ÜÐ1Ó2Ð2ô 'ò &‰ˆ�Ø�?‰?˜6Õ"Ü Ó%Ò%ð&ô
 ˆ4ƒy”K !‘OÒ#Ø”{¤[°1¡_Ð5ˆØ”oÑ%ÜÐ 3Ó4Ð4àrG   )Ú__doc__Úchardet.pipeliner   r
   ÚtupleÚbytesÚstrÚ__annotations__rV   r   r   Údictr   r/   r-   r   r   Ú	frozensetr   rR   rQ   r   r   r   r   r   rT   rU   rF   rM   r\   © rG   rE   ú<module>rf      sÓ  ðòõ -ð
81€��e˜E 3˜JÑ'¨Ð,Ñ-ó 8ðv €Ø%>€��u˜c�zÑ"Ó >ð ØØñ$€��U˜C�ZÑ ó ð Øñ$€��U˜C�ZÑ ó ð €Ø€ð9Ð ˜˜e E¨3 JÑ/°Ð4Ñ5ó ð(9Ð ˜˜e E¨3 JÑ/°Ð4Ñ5ó ñ )2òó)Ð �Y˜uÑ%ó ð €Ø€á&/°¸'Ð0BÓ&CÐ �9˜UÑ#Ó CÙ&/°¸'Ð0BÓ&CÐ �9˜UÑ#Ó CÙ&/°¸'Ð0BÓ&CÐ �9˜UÑ#Ó CÙ'0Ò1LÓ'MÐ �I˜eÑ$Ó MÙ+4°g°YÓ+?Ð ˜	 %Ñ(Ó ?ð  €	ØÐ ð7˜ð 7 #ó 7ðtY�sð Y˜ó YðA�uð A °4Ñ!7ô ArG   