+
    ¾¾jÙ  ã                   ó„   € R t ^ RIHtHtHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHt  ! R R]4      t ! R R	4      tRR	.tR
# )zN property from :rfc:`6350`.)ÚAnyÚClassVarÚ
NamedTuple)ÚSelf)ÚJCalParsingError)Ú
Parameters)ÚDEFAULT_ENCODINGÚ
to_unicodec                   ó:   a € ] tR t^t o Rt     V 3R ltRtV tR# )ÚNFieldsz|Named fields for vCard N (Name) property per :rfc:`6350#section-6.2.2`.

Provides named access to the five name components.
c                óV   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   # )é   ÚfamilyÚgivenÚ
additionalÚprefixÚsuffix©Ústr)ÚformatÚ__classdict__s   "€ÚO/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/prop/n.pyÚ__annotate__ÚNFields.__annotate__   sA   ø‡ ‚ ñ �Kñ ñ �Jñ ñ �Oñ ñ �Kñ ñ �Kò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      s"   ø‡ € ñð 1àààà÷ ƒ r   r   c                   ó  a € ] tR t^t o RtRtRV 3R lR lltV 3R lR lt]V 3R lR	 l4       t	V 3R
 lR lt
V 3R lR lt]V 3R lR l4       t^ RIHt V 3R lR lt]V 3R lR l4       t]V 3R lR l4       tV 3R ltRtV tR# )ÚvNaº  vCard N (Name) structured property per :rfc:`6350#section-6.2.2`.

The N property represents a person's name.
It consists of a single structured text value.
Each component in the structure may have multiple values, separated by commas.

The structured property value corresponds, in sequence, to the following fields:

-   family names (also known as surnames)
-   given names
-   additional names
-   honorific prefixes
-   honorific suffixes

Semicolons are field separators and are NOT escaped.
Commas and backslashes within field values ARE escaped per :rfc:`6350`.

Examples:

    .. code-block:: pycon

        >>> from icalendar.prop import vN
        >>> n = vN(("Doe", "John", "M.", "Dr.", "Jr.,M.D.,A.C.P."))
        >>> n.to_ical()
        b'Doe;John;M.;Dr.;Jr.\\,M.D.\\,A.C.P.'
        >>> vN.from_ical(r"Doe;John;M.;Dr.;Jr.\,M.D.\,A.C.P.")
        NFields(family='Doe', given='John', additional='M.', prefix='Dr.', suffix='Jr.,M.D.,A.C.P.')
ÚTEXTNc                ó¢   <€ V ^8„  d   QhRS[ S[S[3,          R,          RS[S[R3,          S[S[,          ,          S[,          S[,          RR/# )r   ÚparamsNÚfields.Úreturn)Údictr   r   ÚtupleÚlistr   )r   r   s   "€r   r   ÚvN.__annotate__?   sQ   ø€ ÷ )ñ )ñ ‘S™#�X• Õ%ð	)á‘c˜3�h•¡$¡s¥)Õ+©cÕ1±GÕ;ð)ð
 
ñ)r   c               ó&  € \        V\        4      '       d   V P                  V4      p\        V\        4      '       d   Wn        M<\        V4      ^8w  d   \        R\        V4       24      h\        R V 4       !  V n        \        V4      V n        R# )a
  Initialize N with five fields or parse from vCard format string.

Parameters:
    fields: Either an NFields, tuple, or list of five strings, one per field,
            or a vCard format string with semicolon-separated fields
    params: Optional property parameters
ú"N must have exactly 5 fields, got c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5i©Nr   )Ú.0Úfs   & r   Ú	<genexpr>ÚvN.__init__.<locals>.<genexpr>S   s   é € Ð#;±F¨q¤C¨§F F³Fùs   ‚N)	Ú
isinstancer   Ú	from_icalr   r*   ÚlenÚ
ValueErrorr   r)   )Úselfr*   r)   s   ""&r   Ú__init__ÚvN.__init__?   sr   € ô �fœc×"Ò"Ø—^‘^ FÓ+ˆFÜ�fœg×&Ò&Ø �Kä�6‹{˜aÔÜ Ð#EÄcÈ&ÃkÀ]Ð!SÓTÐTÜ!Ñ#;±FÓ#;Ñ<ˆDŒKÜ  Ó(ˆŽr   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r+   )Úbytes)r   r   s   "€r   r   r/   V   s   ø€ ÷ 8ñ 8™ñ 8r   c                óâ   € ^ RI Hp V P                   Uu. uF+  q!! V4      P                  4       P	                  \
        4      NK-  	  ppRP                  V4      P                  \
        4      # u upi )z6Generate vCard format with semicolon-separated fields.)ÚvTextÚ;)Úicalendar.prop.textrC   r*   Úto_icalÚdecoder   ÚjoinÚencode)r<   rC   r5   Úpartss   &   r   rF   Ú
vN.to_icalV   sV   € å-àFJÇkÂkÓRÁkÀ��q“×!Ñ!Ó#×*Ñ*Ô+;Ö<ÁkˆÐRØ�x‰x˜‹×%Ñ%Ô&6Ó7Ð7ùò Ss   •1A,c                ó6   <€ V ^8„  d   QhRS[ S[,          RS[/# )r   Úicalr+   )r   rA   r   )r   r   s   "€r   r   r/   ^   s   ø€ ÷  ñ  ™™e�ð  ©ñ  r   c                óš   € ^ RI Hp \        V 4      p V! V 4      p\        V4      ^8w  d   \	        R\        V4       RV  24      h\        V!  # )z·Parse vCard N format into an NFields named tuple.

Parameters:
    ical: vCard format string with semicolon-separated fields

Returns:
    NFields named tuple with five field values.
)Úsplit_on_unescaped_semicolonr1   z: )Úicalendar.parserrO   r	   r:   r;   r   )rM   rO   r*   s   &  r   r9   ÚvN.from_ical]   sR   € õ 	Bä˜$ÓˆÙ-¨dÓ3ˆÜˆv‹;˜!ÔÜÐAÄ#ÀfÃ+ÀÈbÐQUÐPVÐWÓXÐXÜ˜ÑÐr   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   Úotherr+   )ÚobjectÚbool)r   r   s   "€r   r   r/   o   s   ø€ ÷ Eñ E™Fð E¡tñ Er   c                ód   € \        V\        4      ;'       d    V P                  VP                  8H  # )zself == other)r8   r&   r*   )r<   rS   s   &&r   Ú__eq__Ú	vN.__eq__o   s$   € ä˜%¤Ó$×DÐD¨¯©¸¿¹Ñ)DÐDr   c                ó    <€ V ^8„  d   QhRS[ /# r@   r   )r   r   s   "€r   r   r/   s   s   ø€ ÷ Qñ Q™#ñ Qr   c                óh   € V P                   P                   RV P                   RV P                   R2# )zString representation.Ú(z	, params=Ú))Ú	__class__r   r*   r)   ©r<   s   &r   Ú__repr__ÚvN.__repr__s   s.   € à—.‘.×)Ñ)Ð*¨!¨D¯K©K¨=¸	À$Ç+Á+ÀÈaÐPÐPr   c                ó    <€ V ^8„  d   QhRS[ /# r@   )r   )r   r   s   "€r   r   r/   x   s   ø€ ÷ ñ ™Gñ r   c                ó   € V P                   # )z!The name fields as a named tuple.)r*   r^   s   &r   Ú
ical_valueÚvN.ical_valuew   s   € ð �{‰{Ðr   )ÚVALUEc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   Únamer+   )r   r.   )r   r   s   "€r   r   r/   ~   s   ø€ ÷ ñ ™Cð ¡Dñ r   c                ó¤   € WP                   P                  4       V P                  P                  4       .pVP	                  V P
                  4       V# )zBThe jCal representation of this property according to :rfc:`7265`.)r)   Úto_jcalre   ÚlowerÚextendr*   )r<   rg   Úresults   && r   ri   Ú
vN.to_jcal~   s;   € àŸ™×+Ñ+Ó-¨t¯z©z×/?Ñ/?Ó/AÐBˆØ�‰�d—k‘kÔ"Øˆr   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   Újcal_propertyr+   ©r.   r   )r   r   s   "€r   r   r/   …   s   ø€ ÷ 
ñ 
¡dð 
©tñ 
r   c                óH  € \         P                  ! W4       \        V4      ^8w  d   \        R\        V4       24      h\        VR,          ^R7       F!  w  r#\         P                  ! V\
        W4       K#  	  V ! \        VR,          4      \        P                  ! V4      4      # )z Parse jCal from :rfc:`7265`.

Parameters:
    jcal_property: The jCal property to parse.

Raises:
    ~error.JCalParsingError: If the provided jCal is invalid.
zAN must have 8 elements (name, params, value_type, 5 fields), got :é   NN)Ústart)	r   Úvalidate_propertyr:   Ú	enumerateÚvalidate_value_typer   r-   r   Úfrom_jcal_property)Úclsro   ÚiÚfields   &&  r   Ú	from_jcalÚvN.from_jcal„   s•   € ô 	×*Ò*¨=Ô>Üˆ}Ó Ô"Ü"ðÜ˜=Ó)Ð*ð,óð ô " -°Õ"3¸1×=‰HˆAÜ×0Ò0°¼¸SÖDñ >áÜ�- Õ#Ó$Ü×)Ò)¨-Ó8ó
ð 	
r   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r@   rp   )r   r   s   "€r   r   r/   œ   s   ø€ ÷ :ñ :™™d�ñ :r   c                ó   € V ! R4      .# )zExamples of vN.)ÚDoeÚJohnzM.zDr.zJr.r   )rx   s   &r   ÚexamplesÚvN.examples›   s   € ñ Ð7Ó8Ð9Ð9r   c                óN   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[;R&   S[;R&   # )r   Údefault_valuer)   r*   )r   r   r   r   )r   r   s   "€r   r   r/      s1   ø‡ ‚ ñ< ™C•=Ñ)ñ= ñ> Ññ? ñ@ �OòA r   )r*   r)   r3   )r   r   r   r   r    r„   r=   rF   Ústaticmethodr9   rW   r_   Úpropertyrc   Úicalendar.paramre   ri   Úclassmethodr{   r�   r!   r"   r#   r$   s   @r   r&   r&      s¤   ø‡ € ñð: $*€M÷)ò )÷.8ð 8ð ÷ ó ð ÷"Eð E÷Qð Qð ÷ó ðõ &÷ð ð ÷
ó ð
ð, ÷:ó ð:÷ ƒ r   r&   N)r    Útypingr   r   r   Úicalendar.compatibilityr   Úicalendar.errorr   rP   r   Úicalendar.parser_toolsr   r	   r   r&   Ú__all__r   r   r   Ú<module>rŽ      s?   ðÙ "ç ,Ñ ,å (Ý ,Ý 'ß ?ôˆjô ÷$A:ñ A:ðH �dÐ
‚r   