+
    ½¾jB  ã                  óP  € ^ RI Ht ^ RIt^ RIHt ^RIHtHtHtH	t	H
t
HtHt  ! R R]P                  4      t ! R R]P                  4      t ! R	 R
]P                   4      t ! R R]]P$                  4      t ! R R]]P&                  4      tR R lt]P*                  ! ]4       R# )é    )ÚannotationsN)ÚAny)Ú	IDNAErrorÚ_max_domain_lengthÚ_unicode_dots_reÚalabelÚdecodeÚencodeÚulabelc                  ó:   € ] tR t^	tRtRR R lltRR R lltRtR# )	ÚCodecaN  Stateless IDNA 2008 codec.

Implements the :class:`codecs.Codec` protocol so that the whole-domain
encoder (:func:`idna.encode`) and decoder (:func:`idna.decode`) are
accessible through the standard codec machinery as ``"idna2008"``.

Only the ``"strict"`` error handler is supported; any other handler
raises :exc:`~idna.IDNAError`.
c               ó$   € V ^8„  d   QhRRRRRR/# )é   ÚdataÚstrÚerrorsÚreturnútuple[bytes, int]© )Úformats   "ÚI/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/idna/codec.pyÚ__annotate__ÚCodec.__annotate__   s"   € ÷ 'ñ '˜3ð '¨ð 'Ð;Lñ 'ó    c                	ór   € VR 8w  d   \        RV R2RR7      hV'       g   R# \        V4      \        V4      3# )ÚstrictúUnsupported error handling "Ú"Úunsupported_errors©Úcode)r   r   )r   r
   Úlen©Úselfr   r   s   &&&r   r
   ÚCodec.encode   s=   € Ø�XÔÜÐ:¸6¸(À!ÐDÐK_Ô`Ð`çØˆMä�d‹|œS ›YÐ&Ð&r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   Úbytesr   r   r   útuple[str, int]r   )r   s   "r   r   r      s!   € ÷ 'ñ '˜5ð '¨#ð '¸_ñ 'r   c                	ór   € VR 8w  d   \        RV R2RR7      hV'       g   R# \        V4      \        V4      3# )r   r   r   r   r    ©Ú r   )r   r	   r"   r#   s   &&&r   r	   ÚCodec.decode   s=   € Ø�XÔÜÐ:¸6¸(À!ÐDÐK_Ô`Ð`çØˆLä�d‹|œS ›YÐ&Ð&r   r   N©r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r
   r	   Ú__static_attributes__r   r   r   r   r   	   s   † ñ÷'÷'ó 'r   r   c                  ól   a € ] tR t^'tRtRR V 3R llltR V 3R lltR R ltR R	 ltR
 R lt	Rt
V ;t# )ÚIncrementalEncodera¤  Incremental IDNA 2008 encoder.

Buffers a partial trailing label across calls until either the next
label separator is seen or ``final=True``, so that streamed input is
encoded one whole label at a time. Any of the four Unicode label
separators (``U+002E``, ``U+3002``, ``U+FF0E``, ``U+FF61``) ends a
label; the result always uses ``U+002E`` as the separator.

The 253-octet domain length limit (254 with a trailing dot) that
:func:`idna.encode` enforces is applied to the accumulated output, so
that streaming a name and encoding it in one shot either both succeed
with the same result or both raise :exc:`~idna.IDNAError`.

Only the ``"strict"`` error handler is supported.
c               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r   ÚNoner   )r   s   "r   r   ÚIncrementalEncoder.__annotate__8   s   € ÷ #ñ #˜sð #°$ñ #r   c                	óB   <€ \         SV `  V4       ^ V n        RV n        R# ©r   FN)ÚsuperÚ__init__Ú_emittedÚ_trailing_dot©r$   r   Ú	__class__s   &&€r   r=   ÚIncrementalEncoder.__init__8   s   ø€ Ü‰Ñ˜Ô ØˆŒØ"ˆÖr   c               ó   € V ^8„  d   QhRR/# ©r   r   r8   r   )r   s   "r   r   r9   =   s   € ÷ #ñ #�tñ #r   c                	ó@   <€ \         SV `  4        ^ V n        RV n        R# r;   )r<   Úresetr>   r?   ©r$   rA   s   &€r   rF   ÚIncrementalEncoder.reset=   s   ø€ Ü‰‰ŒØˆŒØ"ˆÖr   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r9   B   s   € ÷ @ñ @˜#ñ @r   c                	ó”   € V P                   '       g   V P                  '       g   ^ # V P                   V P                  V P                  3# )r   )Úbufferr>   r?   ©r$   s   &r   ÚgetstateÚIncrementalEncoder.getstateB   s1   € Ø�{�{ˆ{ 4§=§= =ÙØ—‘˜TŸ]™]¨D×,>Ñ,>Ð?Ð?r   c               ó    € V ^8„  d   QhRRRR/# )r   Ústater   r   r8   r   )r   s   "r   r   r9   G   s   € ÷ ñ ˜cð  dñ r   c                	ód   € V'       d   Vw  V n         V n        V n        R # V P                  4        R # ©N)rK   r>   r?   rF   ©r$   rP   s   &&r   ÚsetstateÚIncrementalEncoder.setstateG   s!   € ßØ=BÑ:ˆDŒK˜œ¨Ö(:à�J‰JŽLr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r   r   ÚfinalÚboolr   r   r   )r   s   "r   r   r9   M   s)   € ÷ &"ñ &" 3ð &"°ð &"¸Dð &"ÐEVñ &"r   c                	óÐ  € VR 8w  d   \        RV R2RR7      hRp^ pV'       d½   \        P                  ! V4      pRpV'       d+   VR	,          '       g   RpVR	 MV'       g   VR	 V'       d   Rp. pV F@  p	VP                  \	        V	4      4       V'       d
   V^,          pV\        V	4      ,          pKB  	  RP                  V4      V,           pV\        V4      ,          pV ;P                  \        V4      ,          un        V'       d   VP                  R4      V n	        V P                  ;'       g    V'       * p
V P                  \        V
,           8”  d   \        RRR7      hWE3# )
r   r   r   r   r    r   ó   .úDomain too longÚdomain_too_longéÿÿÿÿ)r   r   ÚsplitÚappendr   r"   Újoinr>   Úendswithr?   r   )r$   r   r   rW   Úresult_bytesÚsizeÚlabelsÚtrailing_dotÚresultÚlabelÚmay_end_with_dots   &&&&       r   Ú_buffer_encodeÚ!IncrementalEncoder._buffer_encodeM   s7  € Ø�XÔÜÐ:¸6¸(À!ÐDÐK_Ô`Ð`àˆØˆßÜ%×+Ò+¨DÓ1ˆFØˆLßØ˜b—z”zØ#'�LØ˜r™
ßà˜r˜
ßØ'+˜àˆFÛ�Ø—‘œf U›mÔ,ßØ˜A•I�DØœ˜E›
Õ"’ñ	  ð  Ÿ9™9 VÓ,¨|Õ;ˆLØ”C˜Ó%Õ%ˆDð
 	�Šœ˜\Ó*Õ*�ßØ!-×!6Ñ!6°tÓ!<ˆDÔØ×-Ñ-×:Ð:°U´ÐØ�=‰=Ô-Ð0@Õ@Ô@ÜÐ-Ð4EÔFÐFØÐ!Ð!r   )r>   r?   rK   r-   )r.   r/   r0   r1   r2   r=   rF   rM   rT   ri   r3   Ú__classcell__©rA   s   @r   r5   r5   '   s1   ø† ñ÷ #ò #÷
#ð #õ
@õ
÷&"ó &"r   r5   c                  ól   a € ] tR t^vtRtRR V 3R llltR V 3R lltR R ltR R	 ltR
 R lt	Rt
V ;t# )ÚIncrementalDecoderaì  Incremental IDNA 2008 decoder.

Buffers a partial trailing label across calls until either the next
label separator is seen or ``final=True``, so that streamed input is
decoded one whole label at a time.

The 254-octet input length limit that :func:`idna.decode` enforces is
applied to the accumulated input, so that streaming a name and decoding
it in one shot either both succeed with the same result or both raise
:exc:`~idna.IDNAError`.

Only the ``"strict"`` error handler is supported.
c               ó    € V ^8„  d   QhRRRR/# r7   r   )r   s   "r   r   ÚIncrementalDecoder.__annotate__…   s   € ÷ ñ ˜sð °$ñ r   c                	ó4   <€ \         SV `  V4       ^ V n        R# ©r   N)r<   r=   Ú	_consumedr@   s   &&€r   r=   ÚIncrementalDecoder.__init__…   s   ø€ Ü‰Ñ˜Ô ØˆŽr   c               ó   € V ^8„  d   QhRR/# rD   r   )r   s   "r   r   rp   ‰   s   € ÷ ñ �tñ r   c                	ó2   <€ \         SV `  4        ^ V n        R# rr   )r<   rF   rs   rG   s   &€r   rF   ÚIncrementalDecoder.reset‰   s   ø€ Ü‰‰ŒØˆŽr   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   rp   �   s   € ÷ -ñ -Ð+ñ -r   c                	ó2   € V P                   V P                  3# rR   ©rK   rs   rL   s   &r   rM   ÚIncrementalDecoder.getstate�   s   € Ø—‘˜TŸ^™^Ð,Ð,r   c               ó    € V ^8„  d   QhRRRR/# )r   rP   r   r   r8   r   )r   s   "r   r   rp   �   s   € ÷ ,ñ ,Ð/ð ,°Dñ ,r   c                	ó$   € Vw  V n         V n        R # rR   rz   rS   s   &&r   rT   ÚIncrementalDecoder.setstate�   s   € Ø&+Ñ#ˆŒ�T–^r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r   r   r   r   rW   rX   r   r(   r   )r   s   "r   r   rp   “   s(   € ÷ +"ñ +" 3ð +"°ð +"¸Dð +"À_ñ +"r   c                	óô  € VR 8w  d   \        RV R2RR7      hV'       g   R# \        V\        4      '       g    \        VR4      pV P                  \        V4      ,           \        ^,           8”  d   \        R
RR7      h\        P                  ! V4      pRpV'       d+   VR,          '       g   RpVR MV'       g   VR V'       d   Rp. p^ pV F@  p	VP                  \        V	4      4       V'       d
   V^,          pV\        V	4      ,          pKB  	  RP                  V4      V,           p
V\        V4      ,          pV ;P                  V,          un        W¨3#   \         d   p\        RRR7      ThR	p?ii ; i)r   r   r   r   r    r+   ÚasciizInvalid ASCII in A-labelÚinvalid_asciiNr[   r\   Ú.r*   r]   )r   Ú
isinstancer   ÚUnicodeDecodeErrorrs   r"   r   r   r^   r_   r   r`   )r$   r   r   rW   Úerrrd   re   rf   rc   rg   Ú
result_strs   &&&&       r   Ú_buffer_decodeÚ!IncrementalDecoder._buffer_decode“   sS  € Ø�XÔÜÐ:¸6¸(À!ÐDÐK_Ô`Ð`çØˆNä˜$¤×$Ò$ð[Ü˜4 Ó)�ð �>‰>œC ›IÕ%Ô(:¸QÕ(>Ô>ÜÐ-Ð4EÔFÐFä!×'Ò'¨Ó-ˆØˆßØ˜"—:”:Ø"�Ø˜2‘Jßà˜2�JßØ#&�LàˆØˆÛˆEØ�M‰Mœ& ›-Ô(ßØ˜•	�Ø”C˜“JÕŠDñ	 ð —X‘X˜fÓ%¨Õ4ˆ
Ø”�LÓ!Õ!ˆØ�Š˜$Õ�ØÐ!Ð!øôC &ô [ÜÐ :ÀÔQÐWZÐZûð[ús   ºE ÅE7Å$E2Å2E7)rs   rK   r-   )r.   r/   r0   r1   r2   r=   rF   rM   rT   rˆ   r3   rk   rl   s   @r   rn   rn   v   s0   ø† ñ÷ò ÷ð õ-õ,÷+"ó +"r   rn   c                  ó   € ] tR t^ÁtRtR# )ÚStreamWriterr   N©r.   r/   r0   r1   r3   r   r   r   r‹   r‹   Á   ó   † Ûr   r‹   c                  ó   € ] tR t^ÅtRtR# )ÚStreamReaderr   NrŒ   r   r   r   r�   r�   Å   r�   r   r�   c               ó    € V ^8„  d   QhRRRR/# )r   Únamer   r   zcodecs.CodecInfo | Noner   )r   s   "r   r   r   É   s   € ÷ ñ ˜#ð Ð"9ñ r   c           
     ó¶   € V R8w  d   R# \         P                  ! V \        4       P                  \        4       P                  \
        \        \        \        R7      # )a‡  Codec search function registered with :mod:`codecs`.

Returns a :class:`codecs.CodecInfo` for the ``"idna2008"`` codec name
so that ``str.encode("idna2008")`` and ``bytes.decode("idna2008")``
invoke the IDNA 2008 codec defined in this module.

:param name: The codec name being looked up.
:returns: A :class:`codecs.CodecInfo` instance if ``name`` is
    ``"idna2008"``, otherwise ``None``.
Úidna2008N)r‘   r
   r	   ÚincrementalencoderÚincrementaldecoderÚstreamwriterÚstreamreader)	ÚcodecsÚ	CodecInfor   r
   r	   r5   rn   r‹   r�   )r‘   s   &r   Úsearch_functionrš   É   sC   € ð ˆzÔÙÜ×ÒØÜ‹w�~‰~Ü‹w�~‰~Ü-Ü-Ü!Ü!ôð r   )Ú
__future__r   r˜   Útypingr   Úcorer   r   r   r   r	   r
   r   r   ÚBufferedIncrementalEncoderr5   ÚBufferedIncrementalDecoderrn   r‹   r�   rš   Úregisterr   r   r   Ú<module>r¡      sŒ   ðÝ "ã Ý ç a× aÑ aô'ˆF�L‰Lô 'ô<L"˜×:Ñ:ô L"ô^H"˜×:Ñ:ô H"ôV	�5˜&×-Ñ-ô 	ô	�5˜&×-Ñ-ô 	õð0 ‡‚�Ö  r   