+
    ¾¾jw:  ã                   ót  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	 ^ RI
Ht ^ RIHt ^ 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HtHtHtHtHtHtH t  ^ R	I!H"t" ^ R
I#H$t$ ^ RI#H%t& ^RI'H(t(  ^ RI)t)])RJt+]+'       d'   ])PX                  ])P                  ! R4      .t-R .t.R.t/M. t-. t.. t/ ! R R4      t0]! ]14      Pd                  t3]3R,          t4]3R,          t5]3R,          t6]3R,          t7]3R,          t8]3R,          t9]3R,          t:]3R,          t;]Px                  ! R]].R7      R 4       t=]Px                  R 4       t>]Px                  ! RR7      R 4       t?]Px                  ! RR7      R  4       t@]Px                  ! RR7      R! 4       tA]Px                  ! RR7      R" 4       tB]Px                  ! RR7      R# 4       tC]Px                  ! RR7      R$ 4       tD]Px                  ! RR7      R% 4       tE]Px                  ! ]-]! R4      ]PŒ                  ]PŽ                  ! R4      ]	PX                  .,           R&7      R' 4       t,]Px                  ! ].R( R) .,           R&7      R* 4       tHR+tIRdtJ]P–                  ! ]4P™                  4       ]5P™                  4       ]6P™                  4       4       U u. uFH  p V Pš                  ]J9  g   K  V Pœ                  Re9   g   K)  ]IV Pš                  9  g   K<  V Pš                  NKJ  	  up tO]P–                  ! ]4P™                  4       ]5P™                  4       ]6P™                  4       4       U u. uFH  p V Pš                  ]J9  g   K  V Pœ                  R,8X  g   K)  ]IV Pš                  9  g   K<  V Pš                  NKJ  	  up tP]P–                  ! ]4P™                  4       ]5P™                  4       ]6P™                  4       4       U u. uFH  p V Pš                  ]J9  g   K  V Pœ                  R-8X  g   K)  ]IV Pš                  9  g   K<  V Pš                  NKJ  	  up tQR. R/ ltR]Px                  ! ]OR&7      R0 R1 l4       tS]Px                  ! ]PR&7      R2 R3 l4       tT]Px                  ! ]QR&7      R4 R5 l4       tU]4P™                  4        Uu. uF  p]I]V! V4      9   g   K  VNK  	  uptW]Px                  ! ]WR&7      R6 4       tX]Px                  R7 4       tY]Px                  R8 4       tZ]Px                  R9 4       t[]Px                  R: 4       t\]Px                  R; 4       t]]Px                  R< 4       t^]Px                  R= 4       t_]_t`]Px                  R> 4       ta]Px                  R? 4       tb]Px                  R@ 4       tc]Px                  RA 4       td]Px                  ! RR7      RB RC l4       t%]Px                  ! ]/RD.,           R&7      RE 4       te]Px                  RF RG l4       tf]Px                  RH RI l4       tg]Px                  RJ RK l4       th]Px                  RL RM l4       tiRN tj ! RO RP]4      tkRQ tlRR tm]! RS^^^^^4      tn]nPß                  ]	PX                  RT7      tpRUtqRVtr]Px                  RW RX l4       ts]Px                  ! RYRZ7      R[ 4       tt]Px                  R\ 4       tu]Px                  ! ](Pì                  R&7      R] R^ l4       tw]Px                  ! ]"R&7      R_ 4       tx]Px                  R` 4       ty]Px                  Ra Rb l4       tz]Px                  Rc 4       t{R#   ]* d    Rt) EL¤i ; iu up i u up i u up i u upi )fzTest configurationN)Ú	Generator)ÚdatetimeÚtimezone)ÚPath©ÚMock)ÚZoneInfo)Útz)ÚAlarmÚAvailabilityÚCalendarÚ	ComponentÚComponentFactoryÚEventÚFreeBusyÚJournalÚLazyCalendarÚTimezoneÚTodoÚTypesFactoryÚpropÚ
vUTCOffset)ÚPROPERTY_NAMES)ÚTZP©Útzp)Útimezone_idsÚUTCc                 óL   € \         P                  ! V4      P                  V 4      # ©N)Úpytzr   Úlocalize©ÚdtÚtznames   &&ÚW/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/tests/conftest.pyÚ<lambda>r&   3   s   € œ4Ÿ=š=¨Ó0×9Ñ9¸"Ô=ó    r    c                   óª   a € ] tR t^<t o RtRR.tRV 3R lR lltR tR tR t	R	 t
R
 t]R 4       t]]P                   V 3R lR l4       4       tRtV tR# )Ú
DataSourcezFA collection of parsed ICS elements (e.g calendars, timezones, events)ú.icsú.jcalc                ó@   <€ V ^8„  d   QhRS[ RS[S[,          RS[RR/# )é   Údata_source_folderÚparserÚmultipleÚreturnN)r   Útyper   Úbool)ÚformatÚ__classdict__s   "€r%   Ú__annotate__ÚDataSource.__annotate__A   s1   ø€ ÷ "ñ "Ù"&ð"Ù04±Yµð"ÙKOð"à	ñ"r'   c                ó*   € W n         Wn        W0n        R # r   )Ú_parserÚ_data_source_folderÚ	_multiple)Úselfr.   r/   r0   s   &&&&r%   Ú__init__ÚDataSource.__init__A   s   € ð ŒØ#5Ô Ø!Žr'   c                óÊ   € V P                   P                  4        Uu. uF:  pVP                  P                  4       V P                  9   g   K.  VP
                  NK<  	  up# u upi )z(Return all the files that could be used.)r:   ÚiterdirÚsuffixÚlowerÚ
extensionsÚstem)r<   Úps   & r%   ÚkeysÚDataSource.keysH   sU   € ð ×-Ñ-×5Ñ5Ô7ó
á7�Ø�x‰x�~‰~Ó 4§?¡?Ñ2ô ˆA�FŒFÙ7ñ
ð 	
ùò 
s   �+A ÁA c                ó  aaa€ V P                   pRV9   d   VP                  R^4      w  rRV,           .pV F6  pW,           oV P                  S,          pVP                  4       '       g   K6   M	  XP                  4       '       g!   \	        V RRP                  V4       R24      hRoRoXR8X  d   VP                  4       oMVP                  4       oVVV3R lp\        V P                  V\        V4      4       \        W4      # )z;Parse a file and return the result stored in the attribute.Ú.z' does not exist with these extensions: z, Nr+   c                 óî   <€ S'       d(   V P                   P                  SV P                  R 7      MV P                   P                  S4      pV P                  '       d   V# SVn        SVn        SVn        V# )©r0   )r9   Ú	from_icalr;   Ú	from_jcalÚraw_icsÚraw_jcalÚsource_file)r<   ÚsourcerN   rO   rP   s   & €€€r%   Ú
get_parsedÚ*DataSource.__getitem__.<locals>.get_parsedj   sg   ø€ ÷ ð —‘×&Ñ& w¸¿¹Ð&ÔHà—\‘\×+Ñ+¨HÓ5ð ð
 �~�~ˆ~Ø�Ø$ˆFŒNØ&ˆFŒOØ!,ˆFÔØˆMr'   )rC   Úrsplitr:   Úis_fileÚAttributeErrorÚjoinÚ	read_textÚ
read_bytesÚsetattrÚ	__class__ÚpropertyÚgetattr)	r<   Ú	attributerC   Ú	extensionÚsource_pathrR   rN   rO   rP   s	   &&    @@@r%   Ú__getitem__ÚDataSource.__getitem__P   sü   ú€ ð —_‘_ˆ
Ø�)Ôà#,×#3Ñ#3°C¸Ó#;Ñ ˆIØ 	�/Ð*ˆJÛ#ˆIØ#Õ/ˆKØ×2Ñ2°[Õ@ˆKØ×"Ñ"×$Ô$Ùñ	 $ð
 ×"Ñ"×$Ò$ä Ø�+ÐDÀTÇYÁYÈzÓEZÐD[Ð[\Ð]óð ð !%ˆØ#ˆØ˜ÔØ"×,Ñ,Ó.‰Hà!×,Ñ,Ó.ˆG÷	ô 	�—‘ 	¬8°JÓ+?Ô@Ü�tÓ'Ð'r'   c                óX   € VP                  R^4      ^ ,          pWP                  4       9   # )zkey in self.keys()rI   )rT   rF   ©r<   Úkeys   &&r%   Ú__contains__ÚDataSource.__contains__z   s&   € à�j‰j˜˜aÓ  Õ#ˆØ—i‘i“kÑ!Ð!r'   c                ó   € W,          # r   © rd   s   &&r%   Ú__getattr__ÚDataSource.__getattr__   s
   € Ø�yÐr'   c                ó,   € \        V P                  4      # r   )ÚreprÚ__dict__©r<   s   &r%   Ú__repr__ÚDataSource.__repr__‚   s   € Ü�D—M‘MÓ"Ð"r'   c                óR   € V P                  V P                  V P                  RR7      # )z'Return a list of all components parsed.TrK   )r[   r:   r9   ro   s   &r%   r0   ÚDataSource.multiple…   s#   € ð �~‰~˜d×6Ñ6¸¿¹Ètˆ~ÓTÐTr'   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r-   r.   r/   )r   r2   r   )r4   r5   s   "€r%   r6   r7   Œ   s   ø€ ÷ 3ñ 3©Tð 3¹4Á	½?ñ 3r'   c                óH   € \        RVP                   2V 3/ 4      pV! W4      # )zEParse all files in a folder and return a DataSource with the results.r)   )r2   Úname)Úclsr.   r/   Únew_clss   &&& r%   Úfrom_folderÚDataSource.from_folderŠ   s+   € ô ˜ F§K¡K =Ð1°C°6¸2Ó>ˆÙÐ)Ó2Ð2r'   )r:   r;   r9   N)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rC   r=   rF   ra   rf   rj   rp   r\   r0   ÚclassmethodÚ	functoolsÚcachery   Ú__static_attributes__Ú__classdictcell__©r5   s   @r%   r)   r)   <   sl   ø‡ € ÙPà˜'Ð"€J÷"ò "ò
ò((òT"ò
ò#ð ñUó ðUð Ø‡_�_÷3ó ó ö3r'   r)   Ú	calendarsÚ	timezonesÚeventsÚalarmsÚavailabilitiesÚtodosÚjournalsÚfreebusyÚmodule)ÚscopeÚparamsc                óJ   € \         P                  \        VP                  4      # )zxReturn the data source for calendar files.

We have two ways of parsing those:
- Immediately
- Lazily with LazyCalendar
)r)   ry   ÚCALENDARS_FOLDERÚparam)r   Úrequests   &&r%   r†   r†   �   s   € ô ×!Ñ!Ô"2°G·M±MÓBÐBr'   c                ó>   € \         P                  \        \        4      # )z*Return the data source for calendar files.)r)   ry   r’   r   r   s   &r%   Úlazy_calendarsr–   ¨   s   € ô ×!Ñ!Ô"2´LÓAÐAr'   ©r�   c                 ó>   € \         P                  \        \        4      # r   )r)   ry   ÚTIMEZONES_FOLDERr   r   s   &r%   r‡   r‡   ®   s   € ä×!Ñ!Ô"2´HÓ=Ð=r'   c                 ó>   € \         P                  \        \        4      # r   )r)   ry   ÚEVENTS_FOLDERr   r   s   &r%   rˆ   rˆ   ³   ó   € ä×!Ñ!¤-´Ó7Ð7r'   c                 ó>   € \         P                  \        \        4      # r   )r)   ry   ÚALARMS_FOLDERr
   r   s   &r%   r‰   r‰   ¸   rœ   r'   c                 ó>   € \         P                  \        \        4      # r   )r)   ry   ÚAVAILABILITIES_FOLDERr   r   s   &r%   rŠ   rŠ   ½   s   € ä×!Ñ!Ô"7¼ÓFÐFr'   c                 ó>   € \         P                  \        \        4      # r   )r)   ry   ÚTODOS_FOLDERr   r   s   &r%   r‹   r‹   Â   s   € ä×!Ñ!¤,´Ó5Ð5r'   c                 ó>   € \         P                  \        \        4      # r   )r)   ry   ÚJOURNALS_FOLDERr   r   s   &r%   rŒ   rŒ   Ç   s   € ä×!Ñ!¤/´7Ó;Ð;r'   c                 ó>   € \         P                  \        \        4      # r   )r)   ry   ÚFREEBUSY_FOLDERr   r   s   &r%   r�   r�   Ì   s   € ä×!Ñ!¤/´8Ó<Ð<r'   )r�   c                 ó   € V P                   # r   ©r“   ©r”   r   s   &&r%   Úutcrª   Ñ   s   € ð �=‰=Ðr'   c                 óN   € V P                  \        P                  ! V4      R 7      # ©©Útzinfo)Úreplacer	   Úgettzr"   s   &&r%   r&   r&   Û   s   € ˜2Ÿ:™:¬R¯XªX°fÓ-=˜:Ô>r'   c                 ó8   € V P                  \        V4      R 7      # r¬   )r¯   r   r"   s   &&r%   r&   r&   Ü   s   € ˜2Ÿ:™:¬X°fÓ-=˜:Ô>r'   c                 ó   € V P                   # r   r¨   r©   s   &&r%   Úin_timezoner³   Ø   s   € ð �=‰=Ðr'   Úfuzz_testcaser*   r+   c                ó$   € V ^8„  d   QhR\         /# ©r-   r1   ©r   )r4   s   "r%   r6   r6     s   € ÷ <ñ <¼iñ <r'   c                 ó†   € VP                   p\        R V4       WV3 F  pWE9   g   K  WT,          u # 	  \        RV R24      h)zexample file:zCould not find file rI   )r“   ÚprintÚ
ValueError)r†   r‡   rˆ   r”   rP   Údatas   &&&&  r%   Úget_source_filer¼     sJ   € Ø—-‘-€KÜ	ˆ/˜;Ô'Ø fÓ,ˆØÖØÕ$Ò$ñ -ô Ð+¨K¨=¸Ð:Ó
;Ð;r'   c                ó$   € V ^8„  d   QhR\         /# r¶   r·   )r4   s   "r%   r6   r6     s   € ÷ Bñ B¼yñ Br'   c                ó   € \        WW44      # )zeAn example file.

source_file.raw_ics - bytes if .ics file
source_file.raw_jcal - str if .jcal file

©r¼   ©r   r†   r‡   rˆ   r”   s   &&&&&r%   rP   rP     s   € ô ˜9°ÓAÐAr'   c                ó$   € V ^8„  d   QhR\         /# r¶   r·   )r4   s   "r%   r6   r6   $  s   € ÷ Bñ B¼Iñ Br'   c                ó   € \        WW44      # )zOAn example .ica file.

source_file.raw_ics - bytes
source_file.raw_jcal - None
r¿   rÀ   s   &&&&&r%   Úics_filerÃ   #  ó   € ô ˜9°ÓAÐAr'   c                ó$   € V ^8„  d   QhR\         /# r¶   r·   )r4   s   "r%   r6   r6   .  s   € ÷ Bñ B¼Yñ Br'   c                ó   € \        WW44      # )zNAn example .jcal file.

source_file.raw_ics - None
source_file.raw_jcal - str
r¿   rÀ   s   &&&&&r%   Ú	jcal_filerÇ   -  rÄ   r'   c                ó   € V P                   # )zClusterfuzz calendars.r¨   ©r”   s   &r%   Úfuzz_v1_calendar_pathrÊ   >  ó   € ð �=‰=Ðr'   c                 ó   € \        4       # ©zReturn a new types factory.)r   ri   r'   r%   Útypes_factoryrÎ   D  s   € ô ‹>Ðr'   c                 ó   € \        4       # rÍ   ©r   ri   r'   r%   Úcomponent_factoryrÑ   J  ó   € ô ÓÐr'   c              #  ój   "  € RV P                   R&   Rx € V P                   P                  R4       R# 5i)zMap x_sometime to timeÚtimez
X-SOMETIMEN)Ú	types_mapÚpop)rÎ   s   &r%   Ú
x_sometimer×   P  s.   é € ð -3€M×Ñ˜LÑ)Û	Ø×Ñ×Ñ Ö-ùs   ‚13c                 ó   € \        4       # )zReturn a new component factory.rÐ   ri   r'   r%   ÚfactoryrÙ   X  rÒ   r'   c               #   óB   "  € R \         n        Rx € R\         n        R# 5i)TNF)r   Úignore_exceptionsri   r'   r%   ÚvUTCOffset_ignore_exceptionsrÜ   ^  s   é € à#'„JÔ Û	Ø#(„JÖ ùs   ‚c                ó(   € \        4       pRVn        V# )zReturn an event component.ÚVEVENT©r   rv   ©r   Úcs   & r%   Úevent_componentrâ   e  s   € ô 	‹€AØ€A„FØ€Hr'   c                ó   € \        4       # )úReturn an empty component.r·   r   s   &r%   rá   rá   m  s   € ô ‹;Ðr'   c                ó(   € \        4       pRVn        V# )rä   Ú	VCALENDARrß   rà   s   & r%   Úcalendar_componentrç   v  s   € ô 	‹€AØ€A„FØ€Hr'   c               #  ób   "  € \         P                  p R\         n        Rx € V \         n        R# 5i)z*Remove validation for new() of components.FN)r   Ú_validate_new)Úvalues    r%   Údont_validate_newrë   ~  s%   é € ô ×#Ñ#€EØ#„IÔÛ	Ø#„IÖùs   ‚-/c                óž   € \        RR7      pRVn        VP                  RR^ R7       VP                  RR^ R7       VP                  V4       V# )	zBReturn an event with some values and add it to calendar_component.zA brief history of time)ÚsummaryrÞ   ÚdtendÚ20000102T000000)ÚencodeÚdtstartÚ20000101T000000)r   rv   ÚaddÚadd_component)rá   rç   Úes   && r%   Úfilled_event_componentrö   ‡  sO   € ô 	Ð3Ô4€AØ€A„FØ‡E�Eˆ'Ð$¨Q€EÔ/Ø‡E�Eˆ)Ð&¨q€EÔ1Ø×$Ñ$ QÔ'Ø€Hr'   c                 ó$   € \        4       pR VR&   V# )zChair, Table, "Room: 42"Ú	resources)r   rà   s   & r%   Úcalendar_with_resourcesrù   ’  s   € ä‹
€AØ/€A€k�NØ€Hr'   c                ó@   € V ^8„  d   QhR\         \        RR3,          /# )r-   r1   N)r   r   )r4   s   "r%   r6   r6   š  s   € ÷ ñ ”Yœs D¨$˜Õ/ñ r'   c              #  ót   "  € \         P                  ! V 4       \         x € \         P                  ! 4        R# 5i)zThe timezone provider.N)Ú_tzpÚuseÚuse_default©Útzp_names   &r%   r   r   ™  s$   é € ô 	‡H‚HˆXÔÜ
‚JÜ×ÒÖùs   ‚68Úzoneinfoc                ó,   € \        V P                  4      # )z’This is annother timezone provider.

The purpose here is to cross test: pytz <-> zoneinfo.
tzp as parameter makes sure we test the cross product.
)r   r“   r©   s   &&r%   Ú	other_tzpr  ¡  s   € ô ˆw�}‰}ÓÐr'   c                ó$   € V ^8„  d   QhR\         /# r¶   ©Ústr)r4   s   "r%   r6   r6   ¬  s   € ÷ ñ ¤ñ r'   c                ó6   € V P                  4       '       g   Q hV# )z+Skip tests that are not running under pytz.)Ú	uses_pytz)r   r   s   &&r%   Ú	pytz_onlyr	  «  s   € ð �=‰=�?Š?Ðˆ?Ø€Or'   c                ó$   € V ^8„  d   QhR\         /# r¶   r  )r4   s   "r%   r6   r6   ³  s   € ÷ ñ ¬Sñ r'   c                ó6   € V P                  4       '       g   Q hV# )z/Skip tests that are not running under zoneinfo.)Úuses_zoneinfo)r   r”   r   s   &&&r%   Úzoneinfo_onlyr  ²  s   € ð ×Ñ×ÒÐÐØ€Or'   c                ó$   € V ^8„  d   QhR\         /# r¶   r  )r4   s   "r%   r6   r6   º  s   € ÷ ñ œñ r'   c                ó   € V R8w  g   Q hV # )zDo not run tests with pytz.r    ri   rÿ   s   &r%   Úno_pytzr  ¹  s   € ð �vÔÐÐØ€Or'   c                ó$   € V ^8„  d   QhR\         /# r¶   r  )r4   s   "r%   r6   r6   Á  s   € ÷ ñ œSñ r'   c                ó   € V R8w  g   Q hV # )zDo not run tests with zoneinfo.r  ri   rÿ   s   &r%   Úno_zoneinfor  À  s   € ð �zÔ!Ð!Ð!Ø€Or'   c                óˆ  € RV P                   9   d±   \        R.,           pRV P                   9   d   R.pRV P                   9   d   \        pRV P                   9   d   RV P                   9   d   Q R4       hR
 F2  pRV 2V P                   9   g   K  W!9   g   K!  VP                  V4       K4  	  V P                  RVRR7       R	# R	# )zöParametrize without skipping:

tzp_name will be parametrized according to the use of
- pytz_only
- zoneinfo_only
- no_pytz
- no_zoneinfo

See https://docs.pytest.org/en/6.2.x/example/parametrize.html#deferring-the-setup-of-parametrized-resources
r   r  r  r	  z,Use pytz_only or zoneinfo_only but not both!Úno_rŽ   r—   N)r    r  )ÚfixturenamesÚPYTZ_TZPÚremoveÚparametrize)ÚmetafuncÚ	tzp_namesrv   s   &  r%   Úpytest_generate_testsr  Ç  sÅ   € ð �X×*Ñ*Ô*Ü 
˜|Õ+ˆ	Ø˜h×3Ñ3Ô3Ø#˜ˆIØ˜(×/Ñ/Ô/Ü ˆIà˜x×4Ñ4Ô4Ø˜x×4Ñ4Ô4ð	:ð :ó	:ð 
ó )ˆDØ�T�Fˆ|˜x×4Ñ4Ö4¸Ö9JØ× Ñ  Ö&ñ )ð 	×Ñ˜Z¨¸(ÐÖCñ +r'   c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚDoctestZoneInfoiâ  z+Constent ZoneInfo representation for tests.c                ó$   € R V P                   : R2# )zZoneInfo(key=Ú))re   ro   s   &r%   rp   ÚDoctestZoneInfo.__repr__å  s   € Ø˜tŸx™x™l¨!Ð,Ð,r'   ri   N)r{   r|   r}   r~   r   rp   rƒ   r„   r…   s   @r%   r  r  â  s   ø‡ € Ù5÷-ð -r'   r  c                 ó    € V  Uu. uF,  p\        V\        4      '       d   VP                  R4      MTNK.  	  p p\        R V  4       !   R# u upi )zdoctest printzUTF-8c              3   ó”   "  € T F>  p\        V4      P                  4       P                  R R4      P                  RR4      x € K@  	  R# 5i)z
Ú
ÚN)r  Ústripr¯   )Ú.0Úargs   & r%   Ú	<genexpr>Ú doctest_print.<locals>.<genexpr>ì  s:   é € ÐWÑRVÈ3ŒC�‹H�N‰NÓ×$Ñ$ V¨TÓ2×:Ñ:¸4À×FÐFÓRVùs   ‚AAN)Ú
isinstanceÚbytesÚdecoder¹   )Úargsr(  s   * r%   Údoctest_printr/  é  sE   € áNRÓSÉdÀs¤:¨c´5×#9Ò#9ˆC�J‰J�wÔ¸sÒBÉd€DÐSÜ	ÑWÑRVÓWÔXùò Ts   …2Ac                ó:   € V R8X  d   \         # \        V .VO5/ VB # )zIReplace the import mechanism to skip the whole doctest if we import pytz.r    )r    Ú
__import__)rv   r.  Úkws   &*,r%   Údoctest_importr3  ï  s#   € àˆv„~ÜˆÜ�dÐ(˜TÒ( RÑ(Ð(r'   ié  r­   z$d755cef5-2311-46ed-a0e1-6733c9e15c63z#-//collective//icalendar//7.0.0//ENc                ó$   € V ^8„  d   QhR\         /# r¶   r  )r4   s   "r%   r6   r6   ý  s   € ÷ ñ ”#ñ r'   c                 ó   € \         # )z!The UID that tests always create.)ÚUID_DEFAULTri   r'   r%   Útest_uidr7  ü  s
   € ô Ðr'   T)Úautousec                ó¸   a€ \         P                  ! \        ^R7      oV P                  \         RV3R l4       V P                  \        R\        R 4      4       R# )zYCreate a fixed test environment for the functions that are time and randomness dependent.)ÚversionÚuuid4c                  ó   <€ S # r   ri   )Úuids   €r%   r&   Úfixed_env.<locals>.<lambda>  s   ø€ ©sr'   Ú_utc_nowc                  ó   € \         # r   )ÚNOW_UTCri   r'   r%   r&   r>  	  s   € ÅGr'   N)ÚuuidÚUUIDr6  rZ   r   Ústaticmethod)Úmonkeypatchr=  s   &@r%   Ú	fixed_envrF    s>   ø€ ô �)Š)”K¨Ô
+€CØ×Ñœ˜g¤{Ô3à×Ñœ	 :¬|¹OÓ/LÖMr'   c                ó&  € V P                  \        P                  R\        4       V P	                  \        R\
        4       ^ RIHp V P	                  VR\        P                  ! R4      4       ^ RI	H
p V P	                  VR\        4       R\        /# )	z,Modify the environment to make doctests run.r  r   )ÚZONEINFOrª   r   )ÚcalendarÚDEFAULT_PRODIDr¹   )ÚsetitemÚsysÚmodulesr  rZ   r  Úicalendar.timezone.zoneinforH  r   Úicalendar.calrI  rJ  r/  )rE  rH  rI  s   &  r%   Úenv_for_doctestrP    sm   € ð ×ÑœŸ™ Z´Ô:Ø×Ñœ *¬oÔ>Ý4à×Ñ˜ %¬×):Ò):¸5Ó)AÔBå&à×Ñ˜Ð"2´NÔCØ”]Ð#Ð#r'   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r-   r”   r1   )ÚpytestÚFixtureRequestr  )r4   s   "r%   r6   r6     s    € ÷ ñ ”&×'Ñ'ð ¬Cñ r'   c                ó   € V P                   # )zpReturn a timezone id to be used with pytz or zoneinfo.

This goes through all the different timezones possible.
r¨   rÉ   s   &r%   ÚtzidrU    s   € ð �=‰=Ðr'   c                ó   € V P                   # )z@Names of property types that occur as a property of a component.r¨   rÉ   s   &r%   Úv_prop_namerW  $  rË   r'   c                ó"   € \        \        V 4      # )z7Property types that occur as a property of a component.)r]   r   )rW  s   &r%   Úv_proprY  *  s   € ô ”4˜Ó%Ð%r'   c                ó8   € V ^8„  d   QhR\         P                  /# r¶   )r   Ú	VPROPERTY)r4   s   "r%   r6   r6   1  s   € ÷  ñ  œdŸn™nñ  r'   c                 ó0   € V P                  4       ^ ,          # )é    )Úexamples)rY  s   &r%   Úv_prop_exampler_  0  s   € à�?‰?Ó˜QÕÐr'   c                 ó   € \        4       # )zA mock.r   ri   r'   r%   Úmockra  5  s   € ô ‹6€Mr'   )zbig_bad_calendar.icszissue_104_broken_calendar.icsz!issue_1050_multiple_calendars.icszsmall_bad_calendar.icsz multiple_calendar_components.icszpr_480_summary_with_colon.icszparsing_error_in_UTC_offset.icszparsing_error.ics)r*   r+   )|r   r�   Ú	itertoolsrL  rB  r  Úcollections.abcr   r   r   Úpathlibr   Úunittest.mockr   r   rR  Údateutilr	   Ú	icalendarr
   r   r   r   r   r   r   r   r   r   r   r   r   r   Úicalendar.tests.datar   Úicalendar.timezoner   r   rü   Ú r   r    ÚImportErrorÚHAS_PYTZrª   ÚPYTZ_UTCÚPYTZ_IN_TIMEZONEr  r)   Ú__file__ÚparentÚHEREr’   r™   r›   rž   r    r¢   r¤   r¦   Úfixturer†   r–   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   r   r°   r³   ÚFUZZ_TESTCASES_BROKEN_CALENDARSÚBROKEN_SOURCE_FILESÚchainr@   rv   rA   ÚSOURCE_FILESÚ	ICS_FILESÚ
JCAL_FILESr¼   rP   rÃ   rÇ   r  ÚFUZZ_V1rÊ   rÎ   rÑ   r×   rÙ   rÜ   râ   rá   Úcomprç   rë   rö   rù   r  r	  r  r  r  r  r  r/  r3  ÚNOWr¯   rA  r6  rJ  r7  rF  rP  ÚTZIDSrU  rW  rY  r_  ra  )Úfilere   s   00r%   Ú<module>r~     sü  ðÙ ã Û Û 
Û Û Ý %ß 'Ý Ý Ý ã Ý ÷÷ ÷ ÷ õ  0Ý "Ý *å ðÛð �tÐ€ßà�‰Ø�Š�eÓð€Hñ
 	>ðÐð ˆx�Hà€HØÐØ€H÷S3ñ S3ñl ˆHƒ~×Ñ€Ø˜+Õ%Ð Ø˜+Õ%Ð Ø�x•€Ø�x•€ØÐ/Õ/Ð Ø�g�~€Ø˜Õ#€Ø˜Õ#€ð ‡‚�h¨°,Ð'?Ô@ñCó AðCð ‡�ñBó ðBð
 ‡‚�hÔñ>ó  ð>ð ‡‚�hÔñ8ó  ð8ð ‡‚�hÔñ8ó  ð8ð ‡‚�hÔñGó  ðGð ‡‚�hÔñ6ó  ð6ð ‡‚�hÔñ<ó  ð<ð ‡‚�hÔñ=ó  ð=ð ‡‚Ø‘x “¨¯©°·²¸³ÀÇÁÐNÕNôñóðð ‡‚Øá>Ù>ðõôñóðð #2Ð ð	Ð ð —’Ø× Ñ Ó"Ð$4×$<Ñ$<Ó$>À×@UÑ@UÓ@Wôóñˆð ‡y�yÐ+Ñ+ô	 ð
 	�‰Ð(Ñ(ô ð 	(¨t¯y©yÑ8ô €D‡I„Iññ€ð —’Ø× Ñ Ó"Ð$4×$<Ñ$<Ó$>À×@UÑ@UÓ@Wôóñˆð ‡y�yÐ+Ñ+ô	 ð
 	�‰�vÑô ð 	(¨t¯y©yÑ8ô €D‡I„Iññ€	ð —’Ø× Ñ Ó"Ð$4×$<Ñ$<Ó$>À×@UÑ@UÓ@Wôóñˆð ‡y�yÐ+Ñ+ô	 ð
 	�‰�wÑô ð 	(¨t¯y©yÑ8ô €D‡I„Iññ€
õ<ð ‡‚�|Ô$ôBó %ðBð ‡‚�yÔ!ôBó "ðBð ‡‚�zÔ"ôBó #ðBð  ×'Ñ'Ô)óá)ˆØ&©#¨c«(Ñ2÷ €CÙ)ñ€ð ‡‚�wÔñó  ðð
 ‡�ñó ðð
 ‡�ñó ðð
 ‡�ñ.ó ð.ð ‡�ñó ðð
 ‡�ñ)ó ð)ð ‡�ñó ðð ‡�ñó ðð
 	€ð ‡�ñó ðð ‡�ñ$ó ð$ð ‡�ñó ðð ‡�ñó ðð ‡‚�hÔôó  ðð ‡‚�x : ,Õ.Ô/ñó 0ðð ‡�ôó ðð ‡�ôó ðð ‡�ôó ðð ‡�ôó ðòDô6-�hô -òYò)ñ ˆt�Q˜˜A˜q "Ó%€Ø
�+‰+˜XŸ\™\ˆ+Ó
*€Ø4€Ø6€ð ‡�ôó ðð
 ‡‚˜ÔñNó ðNð ‡�ñ$ó ð$ð ‡‚�|×)Ñ)Ô*ôó +ðð ‡‚�~Ô&ñó 'ðð
 ‡�ñ&ó ð&ð
 ‡�ô ó ð ð ‡�ñó òøð[ ô ØƒDðüòNùòùòùòfsf   Á:\ Ê-\&Ë\&Ë\&Ë+\&Ì>\+Í\+Í)\+Í<\+Ï\0Ï'\0Ï:\0Ð\0Ò\5Ò \5Ü	\#Ü"\#