Ë
    Dü´jš	  ã                  ób   — U d Z ddlmZ ddlmZ ddlmZ dZded<    e	dd	h«      Z
d
ed<   dd„Zy)z*Stage 1a: BOM (Byte Order Mark) detection.é    )Úannotations)Údecodes_without_error)ÚDetectionResult)	)ó     þÿúutf-32)ó   ÿþ  r   )s   ï»¿z	utf-8-sig)s   þÿúutf-16)s   ÿþr	   )s   +/v8úutf-7)s   +/v9r
   )s   +/v+r
   )s   +/v/r
   ztuple[tuple[bytes, str], ...]Ú_BOMSr   r   zfrozenset[bytes]Ú_UTF32_BOMSc                óÖ   — t         D ]`  \  }}| j                  |«      sŒ|t        v r t        | «      t        |«      z
  }|dz  dk7  rŒ@|dk(  rt	        | d«      sŒRt        |dd¬«      c S  y)z³Check for a byte order mark at the start of *data*.

    :param data: The raw byte data to examine.
    :returns: A :class:`DetectionResult` with confidence 1.0, or ``None``.
    é   r   r
   g      ð?N)ÚencodingÚ
confidenceÚlanguage)r   Ú
startswithr   Úlenr   r   )ÚdataÚ	bom_bytesr   Úpayload_lens       úR/root/workspace/ytshorts/venv/lib/python3.12/site-packages/chardet/pipeline/bom.pyÚ
detect_bomr   !   s|   € ô  %ò UÑˆ	�8Ø�?‰?˜9Õ%ð
 œKÑ'Ü! $›i¬#¨i«.Ñ8�Ø ‘? aÒ'Øð ˜7Ò"Ô+@ÀÀwÔ+OØÜ"¨HÀÈtÔTÒTðUð ó    N)r   ÚbytesÚreturnzDetectionResult | None)Ú__doc__Ú
__future__r   Úchardet._utilsr   Úchardet.pipeliner   r   Ú__annotations__Ú	frozensetr   r   © r   r   ú<module>r#      s>   ðÚ 0å "å 0Ý ,ð
(€Ð$ó ñ& !*Ð+>Ð@SÐ*TÓ U€ÐÓ Uôr   