Ë
   2C�{œ>‚�ã                    óœ  — d dl Zd dlmc mZ d dlZd dlZ	d dl
Z
d dlZd dlZd dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZmZ d dlmZ d dlm Z m!Z! d d	l"m#Z# d d
l$m%Z% d dl&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 er5d dl3m4Z4 eej                   e4d«      f   Z5eej                   e4d«      f   Z6nle
jn                  jq                  d«      xZ9rAeej                  e9ji                  d«      f   Z5eej                  e9ji                  d«      f   Z6nej                  xZ5Z6dZ:dZ; ejx                  d¬«      Z=d„ Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCd„ ZDd„ ZEd„ ZFe:e;z   fd„ZGd„ ZH ej                  d dd«      ZI ej                  d!dd«      ZJ ejx                  d"¬#«      ZK ejx                  d¬$«      ZL ejx                  d%¬#«      ZMd&ZN ejx                  dd¬'«       ejx                  dd¬(«       ejx                  d¬#«      fZO ej                  d)dd«       ej                  d)d*d«       ej                  d+dd«       ej                  d,dd«       ej                  d-dd«       ej                  d.dd«       ej                  d/dd«       ej                  d0dd«       ej                  d1dd«       ej                  d2dd«       ej                  d3d*d«       ej                  d4d*d«       ej                  d5d*d«       ej                  d6d*d«       ej                  d7dd«       ej                  d8dd«       ej                  d9dd«       ej                  d:d*d«       ej                  d;d*d«       ej                  d<d*d«       ej                  d=dd«       ej                  d>d*d«       ej                  d?dd«       ej                  d@dd«       ej                  dAdd«       ej                  dBd*d«       ej                  dCd*d«       ej                  dDdd«      fZPeP ej                  dEdd«       ej                  dFdd«       ej                  dGddHdIdJdK«      fz   ZQdL„ ZRdM„ ZSdN„ ZT edO¬P«      dQ„ «       ZU edR¬P«      dS„ «       ZV G dT„ dUeW«      ZX G dV„ dWe.«      ZYe	 	 d{ddXœdYe5dz  dZe5dz  d[e.d   dz  d\e.e5   fd]„«       ZZe	 	 d{d^d_œdYej                  dz  dZej                  dz  d[e.ej¶                     d`e\d\e.e6   f
da„«       ZZe	 	 d{d^d_œdYddZdd[e.ej¶                  dz     d`e\d\e.ej                     f
db„«       ZZ e2d^¬c«      	 	 d{dd^ddœdYej                  dz  dZej                  dz  d[e.ej¶                  dz     dz  d`e\d\e.ej                     f
de„«       ZZ ejº                  dFdd«      Z^df„ Z_ G dg„ dhe.«      Z` e2d^¬c«      ejÂ                  jÄ                  ejÂ                  jÆ                  f e(«       dXœdYejÂ                  dZejÂ                  d[e.ej¶                  dz     d\e.ejÂ                     fdi„«       Zddj„ Ze G dk„ dle.«      Zf e2d^¬c«      ejº                  jÄ                  ejº                  jÆ                  fdYejº                  dZejº                  d\e.ejº                     fdm„«       Zg G dn„ doe.«      Zh e2d^¬c«      ejx                  jÄ                  ejx                  jÆ                  fdYejx                  dZejx                  d\e.ejx                     fdp„«       Ziedq„ «       Zjdr„ Zk e2d^¬c«      d^dsœdte\d\e.el   fdu„«       Zm e2d^¬c«      dvdwœdxe\d\e.dy   fdz„«       ZnenZoy)|é    N)ÚcacheÚ	lru_cacheÚpartial)Ú	resources)ÚPath)ÚTYPE_CHECKINGÚ	AnnotatedÚAnyÚoverload)ÚCannotInvertÚInvalidArgument)ÚChoiceT)Ú
check_typeÚcheck_valid_interval)Úsampled_from)Úunwrap_strategies)ÚjustÚnoneÚnothing)ÚFilteredStrategyÚOneOfStrategyÚSampledFromStrategyÚSearchStrategyÚcurrent_filter_call_siteÚone_of)Údefines_strategy)ÚTimezone.Úannotated_types)ÚyearÚmonthÚday)ÚhourÚminuteÚsecondÚmicrosecondé   )Úmicrosecondsc                 óT  — t        | t        «      r˜t        | j                  «      dk(  r€| j                  st| j
                  t        j                  t        j                  t        j                  t        j                  t        j                  fv r| j
                  | j                  d   fS y)z˜Return ``(op, bound)`` for filter conditions like ``partial(op, bound)``,
    with a single positional argument to one of the five comparison operators.r&   r   N)Ú
isinstancer   ÚlenÚargsÚkeywordsÚfuncÚopÚltÚleÚeqÚgeÚgt)Ú	conditions    úm/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/strategies/_internal/datetime.pyÚ_comparator_boundr6   6   sn   € ô 	�9œgÔ&Ü�	—‘Ó 1Ò$Ø×"Ò"Ø�N‰NœrŸu™u¤b§e¡e¬R¯U©U´B·E±E¼2¿5¹5ÐAÑAà�~‰~˜yŸ~™~¨aÑ0Ð0Ð0Øó    c                 ó¨  — | t         j                  t         j                  fv r	  ||| t         j                  u rdnd«      }t         j                  ||ft         j                  ||ft         j
                  ||ft         j                  ||ft         j                  ||fi|    \  }}t        ||«      }t        ||«      }||k  ry||fS # t        $ r Y yw xY w)aP  Narrow [min_value, max_value] to satisfy the condition ``func(arg, x)``.

    ``shift(value, steps)`` moves value by that many of the smallest representable
    steps, raising OverflowError if the result would be unrepresentable.  Returns
    the narrowed (min_value, max_value), or None if no values can satisfy the
    condition.
    r&   éÿÿÿÿN)	r.   r/   r3   ÚOverflowErrorr0   r1   r2   ÚmaxÚmin)r-   ÚargÚ	min_valueÚ	max_valueÚshiftÚloÚhis          r5   Ú_narrowed_boundsrC   C   sÒ   € ð ”—‘”r—u‘uˆ~Ñð	Ù˜ $¬"¯%©%¡-™Q°RÓ8ˆCô
 	�‰��YÐÜ
�‰��YÐÜ
�‰��SˆzÜ
�‰�	˜3ÐÜ
�‰�	˜3Ððð ñ�F€Bˆô 
ˆR�Ó	€BÜ	ˆR�Ó	€BØ	ˆB‚wØØˆrˆ6€Møô ò 	Ùð	ús   ¤C Ã	CÃCc                 óÜ  — t        | «      } t        | t        «      rut        d„ | j                  D «       «      rY| j
                  D �ch c]$  }|€dnt        |t        j                  «      rdnd’Œ& }}t        |«      dk(  r|j                  «       S dS t        | t        «      rB| j                  D �ch c]  }t        |«      ’Œ }}t        |«      dk(  r|j                  «       S dS yc c}w c c}w )z‘Classify the values a timezones= strategy can generate: "none" if only
    None, "aware" if only tzinfo instances, or "unknown" if we can't tell.c              3   ó*   K  — | ]  ^}}|d k(  –— Œ y­w)ÚfilterN© )Ú.0ÚnameÚ_s      r5   ú	<genexpr>z"_timezones_kind.<locals>.<genexpr>c   s   è ø€ ò 6Ø%˜T Aˆ�Õñ6ùs   ‚r   ÚawareÚunknownr&   )r   r)   r   ÚallÚ_transformationsÚelementsÚdtÚtzinfor*   Úpopr   Úoriginal_strategiesÚ_timezones_kind)ÚstratÚeÚkindsÚss       r5   rU   rU   _   sÜ   € ô ˜eÓ$€EÜ�%Ô,Ô-´#ñ 6Ø).×)?Ñ)?ô6ô 3ð
 —^‘^ö
àð �i‰F´
¸1¼b¿i¹iÔ0H¡WÈiÑWð
ˆð 
ô " %›j¨Ašoˆu�y‰y‹{Ð<°9Ð<Ü�%œÔ'Ø-2×-FÑ-FÖG¨” Õ#ÐGˆÐGÜ! %›j¨Ašoˆu�y‰y‹{Ð<°9Ð<Øùò
ùò Hs   Á)C$Â/C)c                 ó’   — t        | t        j                  «      syt        | «      j                  }|dk(  xs |j                  d«      S )NFÚpytzzpytz.)r)   rQ   rR   ÚtypeÚ
__module__Ú
startswith)ÚtzÚmodules     r5   Úis_pytz_timezonera   q   s=   € Ü�bœ"Ÿ)™)Ô$ØÜ�"‹X× Ñ €FØ�VÑÒ9˜v×0Ñ0°Ó9Ð9r7   c                 óx   — t        |«      r|j                  | | j                   ¬«      S | j                  |¬«      S )N)Úis_dst©rR   )ra   ÚlocalizeÚfoldÚreplace)ÚvalueÚtimezones     r5   Úreplace_tzinforj   x   s9   € Ü˜Ô!ð × Ñ  °5·:±:¨~Ð Ó>Ð>Ø�=‰= ˆ=Ó)Ð)r7   c                 ó~   — | j                  d¬«      t        j                  j                  z
  | j	                  «       z
  S )a+  A sort key ordering aware datetimes by the moment they refer to.

    Unlike comparison of datetimes which share a tzinfo - which falls back to
    ignoring both the timezone and the fold attribute - this respects the fold,
    and unlike .astimezone() it cannot overflow near datetime.min/max.
    Nrd   )rg   rQ   Údatetimer<   Ú	utcoffset©rh   s    r5   Ú_instantro   ‹   s.   € ð �=‰= ˆ=Ó%¬¯©¯©Ñ7¸%¿/¹/Ó:KÑKÐKr7   c                 ó¬   — t        | j                  d¬«      |«      j                  «       t        | j                  d¬«      |«      j                  «       k7  S )Nr   )rf   r&   )rj   rg   rm   )rh   r_   s     r5   Ú
_ambiguousrq   •   sK   € ô 	�u—}‘}¨!�}Ó,¨bÓ1×;Ñ;Ó=Ü˜%Ÿ-™-¨Q˜-Ó/°Ó4×>Ñ>Ó@ñ	Aðr7   c                 ó�  — | j                   €y	 | j                  t        j                  j                  «      j                  | j                   «      }| j                   |j                   ur"| j                  «       |j                  «       k7  ry| j                   }|j                   }||u }|�st        j                  d|fd||f«      dt        j                  «       v st        j                  | «      rt        j                  | «      ndt        j                  |«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }t        j                  d	«      d
z   d|iz  }t        t        j                  |«      «      ‚dx}x}}| |k7  S # t
        $ r Y yw xY w)zôThis function tests whether the given datetime can be round-tripped to and
    from UTC.  It is an exact inverse of (and very similar to) the dateutil method
    https://dateutil.readthedocs.io/en/stable/tz.html#dateutil.tz.datetime_exists
    NFT©Úis)zJ%(py2)s
{%(py2)s = %(py0)s.tzinfo
} is %(py6)s
{%(py6)s = %(py4)s.tzinfo
}rh   Ú	roundtrip©Úpy0Úpy2Úpy4Úpy6z'so only the naive portions are comparedz
>assert %(py8)sÚpy8)rR   Ú
astimezonerQ   ri   Úutcr:   rm   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚ_format_assertmsgÚAssertionErrorÚ_format_explanation)rh   ru   Ú@py_assert1Ú@py_assert5Ú@py_assert3Ú@py_format7Ú@py_format9s          r5   Údatetime_does_not_existrŒ   ž   s2  € ð ‡|�|ÐØð	ð ×$Ñ$¤R§[¡[§_¡_Ó5×@Ñ@ÀÇÁÓNˆ	ð 	�‰˜I×,Ñ,Ñ,Ø�O‰OÓ ×!4Ñ!4Ó!6Ò6ð
 à�<‰<ÐV˜9×+Ñ+ÐVˆ<Ð+Ð+×V×VÖVˆ<Ð+×V×V×V×V×VÑVˆ5×V×VÓVˆ5×V×VÔVˆ<×V×V×V×V×VÐV˜9×V×VÓV˜9×V×VÔVÐ+×V×V×VÐ-V×V×V×V×V×V×VÐVØ�IÑÐøô# ò ñ
 ðús   �AF9 Æ9	GÇGc                 ó–   — | dz  dk(  d| dz  dk(  | dz  dk7  z  z
  z  }|dk(  }d|dk7  |dk7  z  |dk7  z  |d	k7  z  z
  }d
|z
  |d|z
  z  z
  S )zùBranchless equivalent of ``monthrange(year, month)[1]`` for valid inputs.

    Written using only arithmetic and (in)equality, with no branching or indexing.
    This avoids concretizing the input or adding more path constraints than necessary.
    é   r   r&   éd   i�  é   é   é	   é   é   é   rG   )r   r    ÚleapÚis_febÚ	is_30_days        r5   Ú_num_days_in_monthr™   À   sz   € ð �1‰H˜‰M˜a 4¨#¡:°¡?°t¸c±zÀQ±Ñ"GÑGÑH€DØ�a‰Z€FØ�U˜a‘Z E¨Q¡JÑ/°5¸A±:Ñ>À%È2Á+ÑNÑN€IØ�	‰>˜F a¨$¡hÑ/Ñ/Ð/r7   c           	      ó	  — t         j                  t         j                  t         j                  f}t	        ||«      }|sÖddt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }t        t        j                  |«      «      ‚d x}}t        |«      }t        |«      }||k(  }|�s€t        j                  d|fd||f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      d	œz  }d
d|iz  }	t        t        j                  |	«      «      ‚d x}x}}||k  }
|
sÆt        j                  d|
fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d }
d}d}i }|D ]Í  }t        t         j                  j                  |«      }|dk(  rt!        |d   |d   «      }n$t        t         j                  j"                  |«      }||t        ||«      |z
  z  z   }||t        ||«      |z
  z  z   }|dk(  r| j%                  ||d¬«      }n| j%                  ||«      }|||<   |||k(  z  }|||k(  z  }ŒÏ t'        |d«      r| j%                  dd«      |d<   |S )Nz5assert %(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
}r)   r>   )rw   Úpy1Úpy3Úpy5)ú==)zN%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py8)s
{%(py8)s = %(py5)s(%(py6)s)
}r\   r?   )rw   r›   rœ   r�   rz   r{   zassert %(py10)sÚpy10©ú<=©z%(py0)s <= %(py2)s©rw   rx   úassert %(py4)sry   r&   r!   r   r    éÐ  ©Úshrink_towardsrf   r   )rQ   ÚdateÚtimerl   r)   r€   r�   r~   r‚   rƒ   r…   r†   r\   r   Úgetattrr<   r™   r;   Údraw_integerÚhasattr)Údatar>   r?   Úduration_namesÚ@py_assert2Ú@py_assert4Ú@py_format6Ú@py_assert7r‹   Ú@py_format11r‡   Ú@py_format3Ú@py_format5Úcap_lowÚcap_highÚresultrI   Únatural_lowÚnatural_highÚlowÚhighÚvals                         r5   Údraw_capped_multipartr¾   Ì   sá  € ô #%§'¡'¬2¯7©7´B·K±KÐ!@ÐAŒ:�iÐ!@ÓAÐAÑA×A×A×A×AÕAŒ:×A×AÓAŒ:×A×A×A×A×AÒA�i×A×AÓA�i×A×AÔAÐ!@×A×AÒAÐA×A×A×A×A×AÒAÜ�	‹?Ð-œd 9›oÐ-ˆ?˜oÑ-×-×-Ö-ˆ?˜o×-×-×-×-×-Ñ-Œ4×-×-Ó-Œ4×-×-×-×-×-Ò-�	×-×-Ó-�	×-×-Ô-ˆ?×-×-×-×-×-Ð-œd×-×-Ó-œd×-×-×-×-×-Ò- 9×-×-Ó- 9×-×-Ô-˜o×-×-×-×-×-×-Ó-Ø˜	Ñ!×!×!Õ!ˆ9˜	×!×!×!×!×!Ñ!ˆ9×!×!Ó!ˆ9×!×!×!×!×!Ò!˜	×!×!Ó!˜	×!×!×!×!×!×!Ñ!ð €GØ€HØ€FØò ,ˆÜœbŸk™kŸo™o¨tÓ4ˆØ�5Š=Ü-¨f°V©n¸fÀW¹oÓN‰Lä"¤2§;¡;§?¡?°DÓ9ˆLð ˜G¤w¨y¸$Ó'?À+Ñ'MÑNÑNˆØ˜h¬'°)¸TÓ*BÀ\Ñ*QÑRÑRˆØ�6Š>Ø×#Ñ# C¨¸dÐ#ÓC‰Cà×#Ñ# C¨Ó.ˆCØˆˆt‰Ø˜S C™ZÑ(ˆØ˜s d™{Ñ+‰ð#,ô$ ˆy˜&Ô!ð ×*Ñ*¨1¨aÓ0ˆˆv‰Ø€Mr7   c                 ó   — | |t         z  z   S ©N)Ú_MICROSECOND©rh   Ústepss     r5   Ú_shift_datetimerÄ   ú   s   € Ø�5œ<Ñ'Ñ'Ð'r7   i  i  r‘   ©Údays)Úsecondsi¸  gš™™™™™©?)rÇ   r'   )Úhoursr'   i´  é   iµ  i¶  i·  i¸  i¹  iº  i»  i¼  i½  i¾  i¿  iÁ  iÄ  iÆ  iÇ  iÈ  iÉ  iÊ  iÌ  iÍ  iÏ  iÖ  iÙ  iÜ  iß  iá  i²  r¥   iö  é   r•   é   é   c           	      óÄ   — t        j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  «      S )zÕBounds may be datetime subclasses such as ``pandas.Timestamp``, whose
    arithmetic can overflow its narrower representable range, and whose type
    must not leak into one side of a draw_capped_multipart window.)	rQ   rl   r   r    r!   r"   r#   r$   r%   rn   s    r5   Ú_as_naive_datetimerÎ   D  sH   € ô �;‰;Ø�
‰
Ø�‰Ø�	‰	Ø�
‰
Ø�‰Ø�‰Ø×Ñóð r7   c                 óÒ   — | j                  t        j                  j                  ¬«      j	                  |«      }|j                  «       |j                  «       |j                  «       fS )Nrd   )rg   rQ   ri   r}   r|   rm   ÚdstÚtzname)Úinstantr_   rL   s      r5   Ú	_tz_staterÓ   S  sE   € Ø�O‰O¤2§;¡;§?¡?ˆOÓ3×>Ñ>¸rÓB€EØ�O‰OÓ˜uŸy™y›{¨E¯L©L«NÐ;Ð;r7   c                 óð  — t        | t        j                  «      ryg }|t        || «      }}||k  r«	 t	        |t
        z   |«      }t        || «      }||k(  r||}}Œ/||}	}|	|z
  t        kD  rL||	|z
  dz  z   j                  d¬«      }
|
|k  r||	|z
  dz  z   }
t        |
| «      |k(  r|
}n|
}	|	|z
  t        kD  rŒL|j                  |	«       |	t        |	| «      }}||k  rŒ«t        |«      S # t        $ r |}Y Œ¯w xY w)a¨  Naive UTC instants in (lo, hi] at which ``tz`` first reports a changed
    (utcoffset, dst, tzname), called "transitions". Daylights savings time is a transition,
    for example.

    Found by scanning at _PROBE_STEP resolution and bisecting each change down to the
    second. Because we resume scanning from each boundary we find, several
    transitions within a single step are all found; the only way to hide one
    is a pair of transitions less than _PROBE_STEP apart which revert to the
    exact prior state.  The closest real pair of transitions is just under
    seven days apart, above our six-day step, so in practice we
    find every transition of every zone.
    rG   r�   r   )r%   )r)   rQ   ri   rÓ   r<   Ú_PROBE_STEPr:   Ú_SECONDrg   ÚappendÚtuple)r_   rA   rB   ÚtransitionsÚatÚstateÚprobeÚprobedr»   r¼   Úmids              r5   Ú_probe_transitionsrß   X  s/  € ô �"”b—k‘kÔ"ð Ø€KØ”I˜b "Ó%ˆ€BØ
ˆrŠ'ð	Ü˜œ[Ñ(¨"Ó-ˆEô ˜5 "Ó%ˆØ�UŠ?Ø˜v�ˆBØØ˜ˆTˆØ�S‰jœ7Ò"ð ˜$ ™*¨Ñ)Ñ)×2Ñ2¸qÐ2ÓAˆCØ�cŠzØ˜T C™Z¨1Ñ,Ñ,�Ü˜˜bÓ! UÒ*Ø‘à�ð �S‰jœ7Ó"ð 	×Ñ˜4Ô Øœ) D¨"Ó-ˆEˆð+ ˆr‹'ô, �ÓÐøô' ò 	ØŠEð	ús   ²C' Ã'C5Ã4C5i   )Úmaxsizec                 ó,   — t        | t        t        «      S rÀ   )rß   Ú_SCAN_LOÚ_SCAN_HI)r_   s    r5   Ú_transitionsrä   †  s   € ä˜b¤(¬HÓ5Ð5r7   é   c                 ó  ‡‡‡‡— 	 | €d}na‰t         kD  r"	 ‰t        z   }t        | ‰t	        ‰|«      «      }n6‰t
        k  r"	 ‰t        z
  }t        | t        ‰|«      ‰«      }nt        | «      }t        ˆˆfd„t        |t        z   «      D «       «      Š‰syt        j                  ddd«      Št	        t        t        ‰«      «      ˆˆfd„¬«      }‰|fS # t        $ r ‰}Y ŒÁw xY w# t        $ r ‰}Y Œ§w xY w# t        $ r Y yw xY w)zÐThe interesting instants for ``tz`` within the window of UTC instants
    [lo, hi], as a sorted tuple of naive datetimes, plus the index to shrink
    towards.

    Returns ``((), 0)`` if there are none.
    rG   ©rG   r   c              3   ó@   •K  — | ]  }‰|cxk  r‰k  sŒn n|–— Œ y ­wrÀ   rG   ©rH   ÚtrB   rA   s     €€r5   rK   z(_interesting_instants.<locals>.<genexpr>ª  s    øè ø€ ò ØÀ"ÈÄ-ÈRÆ-Œñùs   ƒ”
r¥   r&   c                 ó&   •— t        ‰|    ‰z
  «      S rÀ   )Úabs)ÚiÚinstantsÚshrink_targets    €€r5   ú<lambda>z'_interesting_instants.<locals>.<lambda>°  s   ø€ ´c¸(À1¹+ÈÑ:UÓ6V€ r7   ©Úkey)rã   Ú_FALLBACK_SCANr:   rß   r<   râ   r;   rä   Ú	ExceptionrØ   ÚsortedÚ_INTERESTING_INSTANTSrQ   rl   Úranger*   )	r_   rA   rB   rÙ   ÚcapÚfloorÚnearestrî   rï   s	    ``    @@r5   Ú_interesting_instantsrû   ‹  s  û€ ðØˆ:Ø‰KØ”(Š]ðØœ>Ñ)�ô -¨R°´S¸¸S³\ÓB‰KØ”(Š]ðØœ^Ñ+�ô -¨R´°R¸³ÀÓD‰Kä& rÓ*ˆKô ô Ü˜+Ô(=Ñ=Ó>ôó €Hñ ØÜ—K‘K  a¨Ó+€MÜ”%œ˜H›Ó&Ô,VÔW€GØ�WÐÐøô- !ò Ø’ðûô !ò Ø’ðûô
 ò ÙðúsW   †C4 •	C ž!C4 Á 	C# Á	#C4 ÃC ÃC4 ÃC Ã C4 Ã#C1Ã.C4 Ã0C1Ã1C4 Ã4	D Ã?D c                   ó   — e Zd ZdZy)Ú_UnrepresentableBoundz?No wall time in the timezone lies within the strategy's bounds.N)Ú__name__r]   Ú__qualname__Ú__doc__rG   r7   r5   rý   rý   ´  s   „ ÚIr7   rý   c                   ór   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	ed
eedf   fd„Zd„ Zˆ fd„Zˆ xZS )ÚDatetimeStrategyc           	      óš  •‡"‡#— t         ‰$| �  «        t        |t        «      }|�sddt	        j
                  «       v st        j                  t        «      rt        j                  t        «      nddt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      dœz  }t        t        j                  |«      «      ‚d }t        |t        «      }|�sddt	        j
                  «       v st        j                  t        «      rt        j                  t        «      nddt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      dœz  }t        t        j                  |«      «      ‚d }|d uxr |j                  d uxs |d uxr |j                  d u| _        | j                  �rµ||fD �]  }g }d }	||	u }|}
|s8g }t        j                  }t        ||«      }|}|r|j                  }d }||u}|}|}
|
�s²t        j                   d|fd	||	f«      d
t	        j
                  «       v st        j                  |«      rt        j                  |«      nd
t        j                  |	«      dœz  }dd|iz  }|j#                  |«       |�såddt	        j
                  «       v st        j                  t        «      rt        j                  t        «      ndd
t	        j
                  «       v st        j                  |«      rt        j                  |«      nd
dt	        j
                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  «      t        j                  «      dœz  }j#                  |«       |r t        j                   dfdf«      d
t	        j
                  «       v st        j                  |«      rt        j                  |«      nd
t        j                  |«      t        j                  |«      dœz  }dd|iz  }|j#                  |«       t        j$                  |d«      i z  }dd|iz  }|j#                  |«       t        j$                  |d«      i z  }dd|iz  }t        t        j                  |«      «      ‚d x}
x}x}x}	x}x}x}x}x}x}}�Œ |€t        j&                  d¬«      n
t)        |«      | _        |€Lt        j                  j,                  t        j                  j.                  z
  t        j&                  d¬«      z   n
t)        |«      | _        | j*                  }| j0                  }||k  }|sît        j                   d|fd ||f«      d!t	        j
                  «       v st        j                  | «      rt        j                  | «      nd!t        j                  |«      d!t	        j
                  «       v st        j                  | «      rt        j                  | «      nd!t        j                  |«      d"œz  }d#d$|iz  }t        t        j                  |«      «      ‚d x}x}}�nã||fD �]  }t        j                  }t        ||«      }|�sd%dt	        j
                  «       v st        j                  t        «      rt        j                  t        «      ndd
t	        j
                  «       v st        j                  |«      rt        j                  |«      nd
dt	        j
                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      t        j                  |«      d&œz  }t        t        j                  |«      «      ‚d x}}|j                  }d }	||	u }|s­t        j                   d|fd'||	f«      d
t	        j
                  «       v st        j                  |«      rt        j                  |«      nd
t        j                  |«      t        j                  |	«      d(œz  }d)d|iz  }t        t        j                  |«      «      ‚d x}x}}	�Œ ||k  }|sÆt        j                   d|fd*||f«      d+t	        j
                  «       v st        j                  |«      rt        j                  |«      nd+d,t	        j
                  «       v st        j                  |«      rt        j                  |«      nd,d-œz  }d.d/|iz  }t        t        j                  |«      «      ‚d }|| _        || _        || _        || _        | j                  rÁt        j&                  d«      t        j                  j,                  t        j                  j.                  z
  } }t        j                  j.                  t/        t-        | j*                  |«      | «      z   Š#t        j                  j.                  t/        t-        | j0                  |«      | «      z   Š"n|t        j&                  d¬«      }!t-        t        j                  j.                  |!z   t;        |«      «      |!z
  Š#t/        t        j                  j,                  |!z
  t;        |«      «      |!z   Š"‰#‰"f| _        t?        ˆ"ˆ#fd0„t@        D «       «      xs tC        | j6                  «      d1k7  | _"        y )2Nú5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}r)   Útimezones_stratr   ©rw   r›   rx   ry   Úallow_imaginaryÚboolrs   )z%(py2)s is %(py5)srh   )rx   r�   z%(py7)sÚpy7zS%(py17)s
{%(py17)s = %(py11)s(%(py12)s, %(py15)s
{%(py15)s = %(py13)s.datetime
})
}rQ   )Úpy11Úpy12Úpy13Úpy15Úpy17)úis not)z6%(py21)s
{%(py21)s = %(py19)s.tzinfo
} is not %(py24)s)Úpy19Úpy21Úpy24z%(py26)sÚpy26r   z%(py29)sÚpy29r&   zassert %(py32)sÚpy32éþÿÿÿrÅ   r�   r    )zT%(py2)s
{%(py2)s = %(py0)s.min_instant
} <= %(py6)s
{%(py6)s = %(py4)s.max_instant
}Úselfrv   zassert %(py8)sr{   zSassert %(py6)s
{%(py6)s = %(py0)s(%(py1)s, %(py4)s
{%(py4)s = %(py2)s.datetime
})
}©rw   r›   rx   ry   rz   )z.%(py2)s
{%(py2)s = %(py0)s.tzinfo
} is %(py5)s)rw   rx   r�   zassert %(py7)sr¢   r>   r?   r£   r¤   ry   c              3   ó>   •K  — | ]  }‰|cxk  xr ‰k  nc –— Œ y ­wrÀ   rG   ré   s     €€r5   rK   z,DatetimeStrategy.__init__.<locals>.<genexpr>å  s   øè ø€ Ò"P°Q 2¨¦=¨b§= =Ñ"Pùs   ƒr   )#ÚsuperÚ__init__r)   r   r€   r�   r~   r‚   rƒ   r…   r†   r  rR   rL   rQ   rl   r   r×   Ú_format_boolopÚ	timedeltaro   Úmin_instantr;   r<   Úmax_instantr>   r?   Útz_stratr  rÎ   Úinstant_windowÚanyrö   rU   Útricky_possible)%r  r>   r?   r  r  r‰   rµ   rh   r‡   r°   Ú@py_assert0Ú@py_assert10Ú@py_assert14Ú@py_assert16Ú@py_assert9Ú@py_assert20Ú@py_assert23Ú@py_assert22r±   Ú@py_format8Ú@py_format18Ú@py_format25Ú@py_format27Ú@py_format28Ú@py_format30Ú@py_format31Ú@py_format33rˆ   rŠ   r‹   r´   ÚzeroÚwholeÚmarginrB   rA   Ú	__class__s%                                     @@€r5   r  zDatetimeStrategy.__init__¹  sÕ  ú€ Ü‰ÑÔÜ˜/¬>Ó:Ð:Ò:×:×:×:×:Õ:Œz×:×:Ó:Œz×:×:×:×:×:Ò:˜/×:×:Ó:˜/×:×:×:×:×:Ò:¬>×:×:Ó:¬>×:×:Ô:Ð:×:×:×:×:×:Ð:Ü˜/¬4Ó0Ð0Ò0×0×0×0×0Õ0Œz×0×0Ó0Œz×0×0×0×0×0Ò0˜/×0×0Ó0˜/×0×0×0×0×0Ò0¬4×0×0Ó0¬4×0×0Ô0Ð0×0×0×0×0×0Ð0Ø tÐ+ÒL°	×0@Ñ0@ÈÐ0Lò 
Ø˜TÐ!ÒB i×&6Ñ&6¸dÐ&Bð 	Œ
ð �:‹:Ø# YÐ/ó �ñ ð �u �}ö Ü&(§k¡kðÜ˜u kÓ2ðØ2ðÙ2°u·|±|ðØKOðØ7CÈ4Ð7O÷ô ç Ñ ó�u ÷ ò ç‰6÷ò ïé ð ÷ ñ ç‰	ð ÷ ò ç‰	ð !%÷ ÷ ð ç‰6ðä÷ñ ç‰6÷ò ïé ô ÷ñ ç‰	ô ÷ó ç‰6÷ò ïé ð  %÷ñ ç‰	ð  %÷ó ç‰6÷ò ïé ô ')÷ñ ç‰	ô ')÷ò ç‰	ð '2÷ð ç‰	ð 3÷ñ ç‰6ðäñ 3ôç Ñ óØ7CÈ4÷ò ç‰6÷ò ïé ð 8=÷ñ ç‰	ð 8=÷ò ç‰	ð 8D÷ð ç‰	ð LP÷÷ ð ç‰6ðäôç�>÷÷ ñ ç‰6ðäôç�>÷÷ ÷ ò ïé ÷÷ ÷ ÷ ñ ðð *3Ð):”—‘ "Õ%ÄÈÓ@Sð Ôð
 Ð$ô —‘—‘¤"§+¡+§/¡/Ñ1´B·L±LÀaÔ4HÒHä˜iÓ(ð Ôð
 ×#Ñ#Ð7 t×'7Ñ'7Ð7Ð#Ð'7Ñ7×7×7Õ7Ð#Ð'7×7×7×7×7×7Ñ7�4×7×7Ó7�4×7×7Ô7Ð#×7×7×7×7×7Ð7 t×7×7Ó7 t×7×7Ô7Ð'7×7×7×7×7×7×7Õ7à# YÐ/ó ,�Ü)+¯©Ð5”z %¨Ó5Ð5Ò5×5×5×5×5Õ5”z×5×5Ó5”z×5×5×5×5×5Ò5 %×5×5Ó5 %×5×5×5×5×5Ò5¬×5×5Ó5¬×5×5Ô5¨×5×5Ò5Ð5×5×5×5×5×5Ò5Ø—|‘|Ð+ tÐ+�| tÐ+×+×+Õ+�| t×+×+×+×+×+Ñ+�u×+×+Ó+�u×+×+Ô+�|×+×+Ò+ t×+×+×+×+×+×+Õ+ð,ð  	Ñ)×)×)Õ)�9 	×)×)×)×)×)Ñ)�9×)×)Ó)�9×)×)×)×)×)Ò) 	×)×)Ó) 	×)×)×)×)×)×)Ñ)Ø"ˆŒØ"ˆŒØ'ˆŒØ.ˆÔð �:Š:ÜŸ,™, q›/¬2¯;©;¯?©?¼R¿[¹[¿_¹_Ñ+L�%ˆDÜ—‘—‘¤3¤s¨4×+;Ñ+;¸TÓ'BÀEÓ#JÑJˆBÜ—‘—‘¤3¤s¨4×+;Ñ+;¸TÓ'BÀEÓ#JÑJ‰Bä—\‘\ qÔ)ˆFÜ”R—[‘[—_‘_ vÑ-Ô/AÀ)Ó/LÓMÐPVÑVˆBÜ”R—[‘[—_‘_ vÑ-Ô/AÀ)Ó/LÓMÐPVÑVˆBØ! 2˜hˆÔÜ"Ô"PÔ:OÔ"PÓPò  
Ü˜DŸM™MÓ*¨fÑ4ð 	Õr7   c                 ó¢  — |j                  | j                  «      }| j                  r6t        |t        j
                  «      st        d|›d| j                  ›d�«      ‚| j                  r(|j                  t        «      r| j                  ||«      }n| j                  ||«      }| j                  st        |«      r|j                  |› d�«       |S )NzDrew z from the timezones strategy zo, but with aware min_value/max_value bounds the timezones strategy must only generate tzinfo objects (not None)z* does not exist (usually a DST transition))Údrawr   rL   r)   rQ   rR   r   r#  Údraw_booleanÚ	_TRICKY_PÚdraw_tricky_datetimeÚ_draw_ordinary_datetimer  rŒ   Úmark_invalid©r  r­   r_   r¸   s       r5   Údo_drawzDatetimeStrategy.do_drawé  sÁ   € ð �Y‰Y�t—}‘}Ó%ˆØ�:Š:œj¨¬R¯Y©YÔ7Ü!Ø˜�vÐ:¸4¿=¹=Ð:Kð LHð Hóð ð
 ×Ò D×$5Ñ$5´iÔ$@Ø×.Ñ.¨t°RÓ8‰Fà×1Ñ1°$¸Ó;ˆFð ×$Ò$Ô*AÀ&Ô*IØ×Ñ  Ð(RÐSÔTØˆr7   c                 ób   — | j                   r| j                  ||«      S | j                  ||«      S rÀ   )rL   Údraw_aware_datetimeÚdraw_naive_datetime)r  r­   r_   s      r5   r=  z(DatetimeStrategy._draw_ordinary_datetimeþ  s/   € Ø�:Š:Ø×+Ñ+¨D°"Ó5Ð5Ø×'Ñ'¨¨bÓ1Ð1r7   c                 óœ  — 	 t        |g| j                  ¢­Ž \  }}| j                  r	 | j	                  |«      }|€d}n| j                  | j                  f}|s| j                  ||«      S ||j                  dt        |«      dz
  |¬«         }t        |j                  dt        t        «      dz
  «         }|�I|j                  t        j                  j                  ¬«      j!                  |«      j                  d¬«      }d„ |D «       \  }}	t#        t%        ||«      |	«      }
|
t#        ||
|z
  «      z
  }|
t#        ||	|
z
  «      z   }t'        |||«      }t)        t        j*                  di |¤Ž|¬	«      }| j                  r%| j-                  |«      s|j/                  |›d
�«       |S # t        $ r	 d\  }}Y �Œ�w xY w# t
        $ r d}Y �Œ‘w xY w)z6Draw a tricky datetime using the interesting instants.rç   NrG   r   r&   r¦   rd   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrÀ   )rÎ   )rH   Úbs     r5   rK   z8DatetimeStrategy.draw_tricky_datetime.<locals>.<genexpr>!  s   è ø€ Ò8¨AÔ$ Q×'Ñ8ùs   ‚©ri   ú is outside the bounds)rû   r!  Ú	TypeErrorrL   Ú_wall_clock_windowrý   r>   r?   r=  r«   r*   Ú_TRICKY_WIDTHSrg   rQ   ri   r}   r|   r<   r;   r¾   rj   rl   Ú	in_boundsr>  )r  r­   r_   rî   rú   ÚwindowrÒ   ÚwidthrA   rB   Úcenterr»   r¼   r¸   rh   s                  r5   r<  z%DatetimeStrategy.draw_tricky_datetime  sÈ  € ð	&Ü 5°bÐ O¸4×;NÑ;NÒ OÑˆH�gð �:Š:ðØ×0Ñ0°Ó4�ð ˆ~Ø‘à—n‘n d§n¡nÐ5ˆFÙà×/Ñ/°°bÓ9Ð9ØØ×Ñ˜a¤ X£°Ñ!2À7ÐÓKñ
ˆô ˜t×0Ñ0°´C¼Ó4GÈ!Ñ4KÓLÑMˆØˆ>ð —‘¤r§{¡{§¡�Ó7ß‘˜B“ß‘ �Ó%ð ñ
 9°Ô8‰ˆˆBÜ”S˜ "Ó% rÓ*ˆØ”s˜5 &¨2¡+Ó.Ñ.ˆØœ˜E 2¨¡;Ó/Ñ/ˆÜ& t¨S°$Ó7ˆÜœrŸ{™{Ñ4¨VÑ4¸rÔBˆØ�:Š:˜dŸn™n¨UÔ3ð ×Ñ  	Ð)?Ð@ÔAØˆøôI ò 	&Ø %ÑˆH“gð	&ûô
 )ò Ø“ðús"   ‚F' ¨F< Æ'F9Æ8F9Æ<GÇ
Gc                 ó\   — | j                   t        |«      cxk  xr | j                  k  S c S rÀ   )r  ro   r  ©r  rh   s     r5   rL  zDatetimeStrategy.in_bounds-  s(   € Ø×Ñ¤8¨E£?ÖF°d×6FÑ6FÑFÐFÑFÐFr7   c                 óò  — 	 | j                  |«      }€<| j	                  |t
        j                  j                  «      }	 |j                  |«      S t        |g|¢­Ž }t        t        j                  di |¤Ž|¬«      }| j                  |«      s|j                  |›d�«       |S # t        $ r$}|j                  t        |«      «       Y d }~Œ¹d }~ww xY w# t        $ r |j                  |›d|›�«       Y Œ¤w xY w)Nú is not representable in rG  rH  rG   )rJ  rý   r>  ÚstrrB  rQ   ri   r}   r|   r:   r¾   rj   rl   rL  )r  r­   r_   rM  Úerrrh   r¸   s          r5   rB  z$DatetimeStrategy.draw_aware_datetime0  sô   € ð	(Ø×,Ñ,¨RÓ0ˆFð ˆ>ð ×,Ñ,¨T´2·;±;·?±?ÓCˆEðOØ×'Ñ'¨Ó+Ð+ô ' tÐ5¨fÒ5ˆÜœrŸ{™{Ñ4¨VÑ4¸rÔBˆØ�~‰~˜eÔ$à×Ñ  	Ð)?Ð@ÔAØˆøô) %ò 	(Ø×Ñœc #›h×'Ñ'ûð	(ûô !ò OØ×!Ñ! U IÐ-FÀrÀfÐ"MÖNðOús)   ‚B$ Á C Â$	CÂ-CÃCÃC6Ã5C6c                 ó6  ‡— ˆfd„} || j                   t        j                  j                  «      } || j                  t        j                  j
                  «      }||kD  s4||z
  t        j                  d¬«      k  rt        |‰«      st        |‰«      ry||fS )a  The naive (min, max) wall-clock bounds for drawing in ``tz``, or
        None to draw in UTC and convert.  A pure function of (bounds, tz),
        shared by generation and inversion; raises _UnrepresentableBound when
        no wall time in ``tz`` lies within the bounds.c                 óZ  •— | €|S 	 | j                  ‰«      j                  d ¬«      S # t        $ ry | j                  d ¬«      t        j                  j
                  z
  t        j                  d¬«      k  }||t        j                  j
                  u k(  r|cY S t        | ›d‰›�«      d ‚w xY w)Nrd   r�   rÅ   rS  )r|   rg   r:   rQ   rl   r<   r  rý   )ÚboundÚextremeÚnear_minr_   s      €r5   Ú
wall_clockz7DatetimeStrategy._wall_clock_window.<locals>.wall_clockO  s®   ø€ Øˆ}Ø�ðØ×'Ñ'¨Ó+×3Ñ3¸4Ð3Ó@Ð@øÜ ò ð !Ÿ=™=°˜=Ó5¼¿¹¿¹ÑGÌ"Ï,É,ØôKñ �ð  ¬2¯;©;¯?©?Ð :Ò;Ø"’NÜ+Ø�iÐ8¸¸Ð?óàððús   ‡ ( ¨A.B*ÂB*r&   rÅ   N)r>   rQ   rl   r<   r?   r;   r  rq   )r  r_   r[  Ú	min_localÚ	max_locals    `   r5   rJ  z#DatetimeStrategy._wall_clock_windowI  sy   ø€ ô	ñ( ˜tŸ~™~¬r¯{©{¯©Ó?ˆ	Ù˜tŸ~™~¬r¯{©{¯©Ó?ˆ	Ø�yÒ Ø˜	Ñ!¤R§\¡\°qÔ%9Ò9Ü˜I rÔ*¬j¸ÀBÔ.GàØ˜)Ð#Ð#r7   c           
      ó"  — t        || j                  | j                  «      }	 t        t	        j
                  di |¤Ž|¬«      S # t        t        f$ r< |j                  d| j                  ›d| j                  ›d| j                  ›d�«       Y y w xY w)NrG  z"Failed to draw a datetime between z and z with timezone from ú.rG   )
r¾   r>   r?   rj   rQ   rl   Ú
ValueErrorr:   r>  r   r?  s       r5   rC  z$DatetimeStrategy.draw_naive_datetimel  s„   € Ü& t¨T¯^©^¸T¿^¹^ÓLˆð	Ü!¤"§+¡+Ñ"7°Ñ"7À"ÔEÐEøÜœMÐ*ò 	Ø×ÑØ4°T·^±^Ð4FÀeØ—>‘>Ð$Ð$8¸¿¹Ð8IÈðLöð	ús   £A ÁABÂBrh   Úreturn.c                 ón  — | j                   rdnd}| j                  rÈt        |«      t        j                  us|j
                  €t        |›d�«      ‚	 | j                  |«      }t        |«      }|st        |›d| ›�«      ‚|r| j                  st        |›d�«      ‚g | j                  j                  |j
                  «      ¢|¢| j                  ||j
                  |¬«      ¢­S t        |«      t        j                  urt        |›d	�«      ‚|j                  d ¬
«      }| j                  |cxk  r| j                   k  s*n t        |›d| j                  ›d| j                   ›d�«      ‚| j                  st        |«      rt        |›d�«      ‚g | j                  j                  |j
                  «      ¢|¢|j"                  ‘|j$                  ‘|j&                  ‘|j(                  ‘|j*                  ‘|j,                  ‘|j.                  ‘|j0                  ‘­S # t        $ r t        d|›d| ›�«      d ‚w xY w)N)FrG   z is not an aware datetimezcould not locate z relative to z outside the instant bounds of z4 is an imaginary datetime, but allow_imaginary=False©Ú	imaginaryz is not a datetimerd   ú
 outside [ú, ú])r#  rL   r\   rQ   rl   rR   r   rL  rŒ   rô   r  r   Ú_invertÚ_invert_aware_fieldsrg   r>   r?   r   r    r!   r"   r#   r$   r%   rf   )r  rh   Útricky_selectorrL  rd  Únaives         r5   rh  zDatetimeStrategy._invertv  sa  € ð '+×&:Ò&:™(ÀˆØ�:Š:Ü�E‹{¤"§+¡+Ñ-°·±Ð1EÜ" e YÐ.GÐ#HÓIÐIðØ ŸN™N¨5Ó1�	Ü3°EÓ:�	ñ
 Ü" e YÐ.MÈdÈXÐ#VÓWÐWÙ ×!5Ò!5Ü"Ø�iÐSÐTóð ðØ—‘×&Ñ& u§|¡|Ó4ðà ðð ×*Ñ*¨5°%·,±,È)Ð*ÓTñð ô
 �‹;œbŸk™kÑ)Ü % Ð*<Ð=Ó>Ð>Ø—‘ T�Ó*ˆØ—‘ %Ô9¨4¯>©>Ô9ÜØ�)˜: d§n¡nÐ%7°r¸$¿.¹.Ð9KÈ1ÐMóð ð ×#Ò#Ô(?ÀÔ(FÜØ�)ÐOÐPóð ð

Ø�]‰]×"Ñ" 5§<¡<Ó0ð
àð
ð �J‰Jð
ð �K‰Kð	
ð
 �I‰Ið
ð �J‰Jð
ð �L‰Lð
ð �L‰Lð
ð ×Ñð
ð �J‰Jñ
ð 	
øô9 ò Ü"Ø'¨ y°¸d¸XÐFóàððús   ÁH ÈH4c                óœ  — 	 | j                  |«      }|€f|rt        d|›�«      ‚	 |j	                  t
        j                  j                  «      }| j                  |t
        j                  j                  d¬«      S |\  }}|j                  d ¬«      }	||	cxk  r|k  sn t        |›d| ›d|›�«      ‚|	j                  |	j                  |	j                  |	j                  |	j                  |	j                   |	j"                  |j$                  fS # t        $ r}t        t        |«      «      d ‚d }~ww xY w# t        $ r t        |›d�«      d ‚w xY w)Nz1the UTC drawing frame cannot reproduce imaginary z is not representable in UTCFrc  rd   z% is outside the wall-clock window of z in )rJ  rý   r   rT  r|   rQ   ri   r}   r:   ri  rg   r   r    r!   r"   r#   r$   r%   rf   )
r  rh   r_   rd  rM  rU  Ú	utc_valuer\  r]  rk  s
             r5   ri  z%DatetimeStrategy._invert_aware_fields©  s]  € ð	3Ø×,Ñ,¨RÓ0ˆFð ˆ>ñ Ü"ØGÈÀyÐQóð ðWØ!×,Ñ,¬R¯[©[¯_©_Ó=�	ð ×,Ñ,Øœ2Ÿ;™;Ÿ?™?°eð -ó ð ð  &Ñˆ	�9Ø—‘ T�Ó*ˆØ˜UÔ/ iÔ/ÜØ�)Ð@ÀÀÈÈRÈFÐSóð ð �J‰JØ�K‰KØ�I‰IØ�J‰JØ�L‰LØ�L‰LØ×ÑØ�J‰Jð	
ð 		
øô- %ò 	3Üœs 3›xÓ(¨dÐ2ûð	3ûô !ò WÜ" e YÐ.JÐ#KÓLÐRVÐVðWús"   ‚D ¦)D2 Ä	D/ÄD*Ä*D/Ä2Ec                 óN  •— t        |«      x}��êt        |d   x}t        j                  «      �rÊ|d   }	 |j	                  «       d u}|s£|j                  �€£| j                  �s–t        | j                  «      dk(  �r}t        ||| j                  | j                  t        «      }|€
t!        «       S || j                  | j                  fk(  r| S t#        || j                  | j$                  dœŽS | j                  r| j                  | j                  }}ny| j                  | j                  ft        j                  j&                  t        j                  j(                  fk(  rt        | j                  «      dk7  rd x}}nt        ‰| �  |«      S t+        |«      }	|t,        j.                  t,        j0                  t,        j2                  fv r|�t+        |«      |	k  r|}|t,        j4                  t,        j6                  t,        j2                  fv r|�|	t+        |«      k  r|}|�`|�^t+        |«      t+        |«      }}
||
k  s9|t,        j.                  t,        j4                  fv r!|
|cxk(  r|	k(  rt!        «       S  n
t!        «       S || j                  u r|| j                  u r| }n"t9        ||| j                  | j$                  «      }|t,        j.                  t,        j4                  fv rt;        ||ft=        «       f«      S |S t        ‰| �  |«      S # t
        $ r t        ‰| �  |«      cY S w xY w)Nr&   r   r   ©Ú	timezonesr  )r6   r)   rQ   rl   rm   rô   r  rF   rR   rL   rU   r   rC   r>   r?   rÄ   r   Ú	datetimesr  r<   r;   ro   r.   r/   r0   r1   r3   r2   r  r   r   )r  r4   Úparsedr=   r-   Úbound_awareÚboundsr>   r?   rò   rA   rB   r¸   r7  s                €r5   rF   zDatetimeStrategy.filterÏ  sÂ  ø€ Ü'¨	Ó2Ð2ˆFÑ?ÄJØ˜!‘9ÐˆCœbŸk™kõE
ð ˜!‘9ˆDð1Ø!Ÿm™m›o°TÐ9�ñ
 ð —J‘JÑ&Ø ŸJ›JÜ'¨¯©Ó6¸&Ó@ä-Ø˜c 4§>¡>°4·>±>Ä?ó�Fð �~Ü&›yÐ(Ø $§.¡.°$·.±.Ð!AÒAØ#˜Ü$ØØ"&§-¡-Ø(,×(<Ñ(<òð ð —:’:Ø+/¯>©>¸4¿>¹>˜y‘IØ—n‘n d§n¡nÐ5Ü—K‘K—O‘OÜ—K‘K—O‘Oð:ò ô & d§m¡mÓ4¸Ò>ð -1Ð0�I¡	ä ™7™>¨)Ó4Ð4Ü˜s“m�ØœBŸE™E¤2§5¡5¬"¯%©%Ð0Ñ0ØÐ%¬°)Ó)<¸sÒ)Bà #�IØœBŸE™E¤2§5¡5¬"¯%©%Ð0Ñ0ØÐ%¨¬x¸	Ó/BÒ)Bà #�IØÐ(¨YÐ-BÜ% iÓ0´(¸9Ó2E˜�BØ˜B’w 4¬B¯E©E´2·5±5¨>Ñ#9¸bÀB¼oÈ#ºoô  '›yÐ(ñ	 ?Nô  '›yÐ(Ø §¡Ñ.°9ÀÇÁÑ3NØ!‘Fä-Ø! 9¨d¯m©m¸T×=QÑ=Qó�Fð œBŸE™E¤2§5¡5˜>Ñ)Ü+Ø  Ô/GÓ/IÐ.Kóð ð �Ü‰w‰~˜iÓ(Ð(øôQ ò 1ô ‘w‘~ iÓ0Ò0ð1ús   ¶L	 Ì	L$Ì#L$)rþ   r]   rÿ   r  r@  r=  r<  rL  rB  rJ  rC  r
   rØ   r   rh  ri  rF   Ú__classcell__©r7  s   @r5   r  r  ¸  s^   ø„ ô.
ò`ò*2ò
(òTGòò2!$òFð1
˜Sð 1
 U¨7°C¨<Ñ%8ó 1
òf$
÷LO)ð O)r7   r  )rp  r>   r?   rp  ra  c                 ó   — y rÀ   rG   ©r>   r?   rp  s      r5   rq  rq  !  s   € ð %(r7   T)r  r  c                 ó   — y rÀ   rG   ©r>   r?   rp  r  s       r5   rq  rq  *  s   € ð %(r7   c                 ó   — y rÀ   rG   rz  s       r5   rq  rq  4  s   € ð #&r7   )Úforce_reusable_valuesro  c                ó®  — t        t        |d«       | �t        t        j                  | d«       |�t        t        j                  |d«       |�t	        |t
        «      st        d|›d�«      ‚| �| j                  €e|�|j                  €W| €t        j                  j                  n| } |€t        j                  j                  n|}|€
t        «       }t        | |dd«       nid| fd|ffD ]%  \  }}|€Œ	|j                  �Œt        |› d|›d�«      ‚ |€
t        «       }| �+|�)t        |«      t        | «      k  rt        d|›d	| ›d
�«      ‚t        | |||«      S )a¦	  datetimes(min_value=None, max_value=None, *, timezones=None, allow_imaginary=True)

    A strategy for generating datetimes, which may be timezone-aware.

    If ``min_value`` and ``max_value`` are naive datetimes, or omitted, this
    strategy works by drawing a naive datetime between them - defaulting to
    ``datetime.min`` and ``datetime.max`` respectively - and then attaching
    a timezone drawn from ``timezones``, which defaults to
    :func:`~hypothesis.strategies.none`.

    If instead both bounds are timezone-aware, they are treated as moments in
    time, and ``timezones`` defaults to :func:`~hypothesis.strategies.timezones`.
    Each generated datetime is aware, in a timezone drawn from ``timezones`` -
    which must not generate ``None`` - and lies between the two moments.
    Passing one aware and one naive bound is an error.

    ``timezones`` must be a strategy that generates either ``None``, for naive
    datetimes, or :class:`~python:datetime.tzinfo` objects for 'aware' datetimes.
    You can construct your own, though we recommend using one of these built-in
    strategies:

    * with the standard library: :func:`hypothesis.strategies.timezones`;
    * with :pypi:`dateutil <python-dateutil>`:
      :func:`hypothesis.extra.dateutil.timezones`; or
    * with :pypi:`pytz`: :func:`hypothesis.extra.pytz.timezones`.

    You may pass ``allow_imaginary=False`` to filter out "imaginary" datetimes
    which did not (or will not) occur due to daylight savings, leap seconds,
    timezone and calendar adjustments, etc.  Imaginary datetimes are allowed
    by default, because malformed timestamps are a common source of bugs.

    Because times near a change to the UTC offset are also a common source of
    bugs, this strategy deliberately generates values on or near the drawn
    timezone's daylight-saving and other offset transitions - including
    imaginary wall times, and ambiguous ones with each value of ``fold`` -
    as well as times adjacent to leap seconds and to well-known rollovers such as
    the millennium and the end of the signed 32-bit Unix epoch.

    .. note::

        Arithmetic and comparisons on timezone-aware datetimes can be very
        surprising around daylight-savings changes.  See `this CPython issue
        <https://github.com/python/cpython/issues/116035>`__ for details
        and discussion.

    Examples from this strategy shrink towards midnight on January 1st 2000,
    local time.
    r  r>   r?   z
timezones=zb must be a SearchStrategy that can provide tzinfo for datetimes (either None or dt.tzinfo objects)ú=z] is naive, but the other bound is timezone-aware; the bounds must be both naive or both awarezCannot have max_value=z < min_value=z, comparing as moments in time)r   r  rQ   rl   r)   r   r   rR   r<   r;   r   r   Ú
_timezonesro   r  )r>   r?   rp  r  rI   rh   s         r5   rq  rq  >  s‘  € ôp Œt�_Ð&7Ô8ØÐÜ”2—;‘; 	¨;Ô7ØÐÜ”2—;‘; 	¨;Ô7ØÐ¤Z°	¼>Ô%JÜØˆyˆlð Nð Nó
ð 	
ð 	Ð˜Y×-Ñ-Ð5ØÐ˜Y×-Ñ-Ð5à'0Ð'8”B—K‘K—O’O¸iˆ	Ø'0Ð'8”B—K‘K—O’O¸iˆ	ØÐÜ›ˆIÜ˜Y¨	°;ÀÕLð
 )¨)Ð4°{ÀIÐ6NÐOò 	‰KˆD�%ØÑ  U§\¡\Ñ%9Ü%Ø�f˜A˜e˜Yð 'Rð Róð ð	ð ÐÜ"›ˆIð Ð!ØÐ%Ü˜Ó#¤h¨yÓ&9Ò9ä!Ø)˜y˜l¨.¨i¨\ð :"ð "óð ô ˜I y°)¸_ÓMÐMr7   c                 ó¸   — t         j                  j                  t        | «      |t        z  z   }|j                  «       t        k7  rt        ‚|j                  «       S rÀ   )rQ   rl   ÚcombineÚ_ARBITRARY_DATErÁ   r¨   r:   r©   )rh   rÃ   Úshifteds      r5   Ú_shift_timer„  ¥  sD   € ô �k‰k×!Ñ!¤/°5Ó9¸EÄLÑ<PÑP€GØ‡|�|ƒ~œÒ(ÜÐØ�<‰<‹>Ðr7   c                   óH   ‡ — e Zd Zˆ fd„Zd„ Zdedeedf   fd„Zˆ fd„Z	ˆ xZ
S )ÚTimeStrategyc                 óL   •— t         ‰| �  «        || _        || _        || _        y rÀ   )r  r  r>   r?   r   )r  r>   r?   r  r7  s       €r5   r  zTimeStrategy.__init__¯  s#   ø€ Ü‰ÑÔØ"ˆŒØ"ˆŒØ'ˆ�r7   c                 ó¶   — t        || j                  | j                  t        «      }|j	                  | j
                  «      }t        j                  di |¤d|i¤ŽS )NrR   rG   )r¾   r>   r?   Ú	TIMENAMESr9  r   rQ   r©   )r  r­   r¸   r_   s       r5   r@  zTimeStrategy.do_drawµ  sC   € Ü& t¨T¯^©^¸T¿^¹^ÌYÓWˆØ�Y‰Y�t—}‘}Ó%ˆÜ�w‰wÑ+˜Ñ+¨Ò+Ð+r7   rh   ra  .c                 óÈ  — t        |«      t        j                  urt        |›d�«      ‚|j	                  d ¬«      }| j
                  |cxk  r| j                  k  s*n t        |›d| j
                  ›d| j                  ›d�«      ‚|j                  |j                  |j                  |j                  |j                  g| j                  j                  |j                  «      ¢­S )Nz is not a timerd   re  rf  rg  )r\   rQ   r©   r   rg   r>   r?   r"   r#   r$   r%   rf   r   rh  rR   )r  rh   rk  s      r5   rh  zTimeStrategy._invertº  sÄ   € Ü�‹;œbŸg™gÑ%Ü % ¨.Ð9Ó:Ð:Ø—‘ T�Ó*ˆØ—‘ %Ô9¨4¯>©>Ô9ÜØ�)˜: d§n¡nÐ%7°r¸$¿.¹.Ð9KÈ1ÐMóð ð �J‰JØ�L‰LØ�L‰LØ×ÑØ�J‰Jð
ð �]‰]×"Ñ" 5§<¡<Ó0ñ
ð 	
r7   c                 ó’  •— t        |«      x}�«t        |d   x}t        j                  «      rŒ|j                  €€t        | j                  «      dk(  rht        |d   || j                  | j                  t        «      }|€
t        «       S || j                  | j                  fk(  r| S t        |d| j                  iŽS t        ‰| �9  |«      S )Nr&   r   r   rp  )r6   r)   rQ   r©   rR   rU   r   rC   r>   r?   r„  r   Útimesr  rF   ©r  r4   rr  r=   rt  r7  s        €r5   rF   zTimeStrategy.filterÍ  s´   ø€ ô )¨Ó3Ð3ˆVÐ@Ü &¨¡)Ð+˜3¬R¯W©WÔ5Ø—
‘
Ð"Ü §¡Ó.°&Ò8ä%Ø�q‘	˜3 §¡°·±ÄóˆFð ˆ~Ü“yÐ Ø˜$Ÿ.™.¨$¯.©.Ð9Ò9Ø�Ü˜&Ð:¨D¯M©MÑ:Ð:Ü‰w‰~˜iÓ(Ð(r7   ©rþ   r]   rÿ   r  r@  r
   rØ   r   rh  rF   ru  rv  s   @r5   r†  r†  ®  s3   ø„ ô(ò,ð

˜Sð 
 U¨7°C¨<Ñ%8ó 
÷&)ð )r7   r†  c                ó  — t        t        j                  | d«       t        t        j                  |d«       | j                  �t	        d| ›d�«      ‚|j                  �t	        d|›d�«      ‚t        | |dd«       t        | ||«      S )an  times(min_value=datetime.time.min, max_value=datetime.time.max, *, timezones=none())

    A strategy for times between ``min_value`` and ``max_value``.

    The ``timezones`` argument is handled as for :py:func:`datetimes`.

    Examples from this strategy shrink towards midnight, with the timezone
    component shrinking as for the strategy that provided it.
    r>   r?   ú
min_value=z must not have tzinfoú
max_value=)r   rQ   r©   rR   r   r   r†  rx  s      r5   rŒ  rŒ  ã  sƒ   € ô  Œr�w‰w˜	 ;Ô/ÜŒr�w‰w˜	 ;Ô/Ø×ÑÐ#Ü   Ð,AÐBÓCÐCØ×ÑÐ#Ü   Ð,AÐBÓCÐCÜ˜ I¨{¸KÔHÜ˜	 9¨iÓ8Ð8r7   c                 ó:   — | |t        j                  d¬«      z  z   S )Nr&   rÅ   )rQ   r  rÂ   s     r5   Ú_shift_dater“  ý  s   € Ø�5œ2Ÿ<™<¨QÔ/Ñ/Ñ/Ð/r7   c                   óH   ‡ — e Zd Zˆ fd„Zd„ Zdedeedf   fd„Zˆ fd„Z	ˆ xZ
S )ÚDateStrategyc                 óä  •— t         ‰	| �  «        t        j                  }t	        ||«      }|�sddt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      t        j                  |«      dœz  }t        t        j                  |«      «      ‚d x}}t        j                  }t	        ||«      }|�sddt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      t        j                  |«      dœz  }t        t        j                  |«      «      ‚d x}}||k  }|sÆt        j                  d|fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndd	œz  }d
d|iz  }t        t        j                  |«      «      ‚d }|| _        || _        y )NzOassert %(py6)s
{%(py6)s = %(py0)s(%(py1)s, %(py4)s
{%(py4)s = %(py2)s.date
})
}r)   r>   rQ   r  r?   ©ú<©z%(py0)s < %(py2)sr£   r¤   ry   )r  r  rQ   r¨   r)   r€   r�   r~   r‚   rƒ   r…   r†   r   r>   r?   ©
r  r>   r?   r‰   rˆ   rŠ   r‡   r´   rµ   r7  s
            €r5   r  zDateStrategy.__init__  s¼  ø€ Ü‰ÑÔÜ%'§W¡WÐ-Œz˜) WÓ-Ð-Ò-×-×-×-×-Õ-Œz×-×-Ó-Œz×-×-×-×-×-Ò-˜)×-×-Ó-˜)×-×-×-×-×-Ò-¤R×-×-Ó-¤R×-×-Ô- W×-×-Ò-Ð-×-×-×-×-×-Ò-Ü%'§W¡WÐ-Œz˜) WÓ-Ð-Ò-×-×-×-×-Õ-Œz×-×-Ó-Œz×-×-×-×-×-Ò-˜)×-×-Ó-˜)×-×-×-×-×-Ò-¤R×-×-Ó-¤R×-×-Ô- W×-×-Ò-Ð-×-×-×-×-×-Ò-Ø˜9Ñ$×$×$Õ$ˆy˜9×$×$×$×$×$Ñ$ˆy×$×$Ó$ˆy×$×$×$×$×$Ò$˜9×$×$Ó$˜9×$×$×$×$×$×$Ñ$Ø"ˆŒØ"ˆ�r7   c           
      ót   — t        j                  di t        || j                  | j                  t
        «      ¤ŽS )NrG   )rQ   r¨   r¾   r>   r?   Ú	DATENAMES)r  r­   s     r5   r@  zDateStrategy.do_draw
  s.   € Ü�w‰wñ 
Ü# D¨$¯.©.¸$¿.¹.Ì)ÓTñ
ð 	
r7   rh   ra  .c                 ó,  — t        |«      t        j                  urt        |›d�«      ‚| j                  |cxk  r| j
                  k  s*n t        |›d| j                  ›d| j
                  ›d�«      ‚|j                  |j                  |j                  fS )Nz is not a datere  rf  rg  )	r\   rQ   r¨   r   r>   r?   r   r    r!   rQ  s     r5   rh  zDateStrategy._invert  s�   € Ü�‹;œbŸg™gÑ%Ü % ¨.Ð9Ó:Ð:Ø—‘ %Ô9¨4¯>©>Ô9ÜØ�)˜: d§n¡nÐ%7°r¸$¿.¹.Ð9KÈ1ÐMóð ð —
‘
˜EŸK™K¨¯©Ð3Ð3r7   c                 ód  •— t        |«      x}�”t        |d   x}t        j                  «      rut        |t        j                  «      s[t        |d   || j                  | j                  t        «      }|€
t        «       S || j                  | j                  fk(  r| S t        |Ž S t        ‰| �1  |«      S )Nr&   r   )r6   r)   rQ   r¨   rl   rC   r>   r?   r“  r   Údatesr  rF   r�  s        €r5   rF   zDateStrategy.filter  s›   ø€ ä(¨Ó3Ð3ˆVÐ@ä &¨¡)Ð+˜3¬R¯W©WÔ5Ü˜s¤B§K¡KÔ0ä%Ø�q‘	˜3 §¡°·±ÄóˆFð ˆ~Ü“yÐ Ø˜$Ÿ.™.¨$¯.©.Ð9Ò9Ø�Ü˜&�>Ð!ä‰w‰~˜iÓ(Ð(r7   rŽ  rv  s   @r5   r•  r•    s3   ø„ ô#ò
ð
4˜Sð 4 U¨7°C¨<Ñ%8ó 4÷)ð )r7   r•  c                 óf  — t        t        j                  | d«       t        t        j                  |d«       t        | t        j                  «      rt        d| ›d�«      ‚t        |t        j                  «      rt        d|›d�«      ‚t        | |dd«       | |k(  rt        | «      S t        | |«      S )zÉdates(min_value=datetime.date.min, max_value=datetime.date.max)

    A strategy for dates between ``min_value`` and ``max_value``.

    Examples from this strategy shrink towards January 1st 2000.
    r>   r?   r�  z# is a datetime, but expected a dater‘  )	r   rQ   r¨   r)   rl   r   r   r   r•  ©r>   r?   s     r5   rŸ  rŸ  +  s™   € ô Œr�w‰w˜	 ;Ô/ÜŒr�w‰w˜	 ;Ô/ô �)œRŸ[™[Ô)Ü   Ð,OÐPÓQÐQÜ�)œRŸ[™[Ô)Ü   Ð,OÐPÓQÐQÜ˜ I¨{¸KÔHØ�IÒÜ�I‹ÐÜ˜	 9Ó-Ð-r7   c                   ó>   ‡ — e Zd Zˆ fd„Zd„ Zdedeedf   fd„Zˆ xZ	S )ÚTimedeltaStrategyc                 óä  •— t         ‰	| �  «        t        j                  }t	        ||«      }|�sddt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      t        j                  |«      dœz  }t        t        j                  |«      «      ‚d x}}t        j                  }t	        ||«      }|�sddt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      t        j                  |«      dœz  }t        t        j                  |«      «      ‚d x}}||k  }|sÆt        j                  d|fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndd	œz  }d
d|iz  }t        t        j                  |«      «      ‚d }|| _        || _        y )NzTassert %(py6)s
{%(py6)s = %(py0)s(%(py1)s, %(py4)s
{%(py4)s = %(py2)s.timedelta
})
}r)   r>   rQ   r  r?   r—  r™  r£   r¤   ry   )r  r  rQ   r  r)   r€   r�   r~   r‚   rƒ   r…   r†   r   r>   r?   rš  s
            €r5   r  zTimedeltaStrategy.__init__D  s¼  ø€ Ü‰ÑÔÜ%'§\¡\Ð2Œz˜) \Ó2Ð2Ò2×2×2×2×2Õ2Œz×2×2Ó2Œz×2×2×2×2×2Ò2˜)×2×2Ó2˜)×2×2×2×2×2Ò2¤R×2×2Ó2¤R×2×2Ô2 \×2×2Ò2Ð2×2×2×2×2×2Ò2Ü%'§\¡\Ð2Œz˜) \Ó2Ð2Ò2×2×2×2×2Õ2Œz×2×2Ó2Œz×2×2×2×2×2Ò2˜)×2×2Ó2˜)×2×2×2×2×2Ò2¤R×2×2Ó2¤R×2×2Ô2 \×2×2Ò2Ð2×2×2×2×2×2Ò2Ø˜9Ñ$×$×$Õ$ˆy˜9×$×$×$×$×$Ñ$ˆy×$×$Ó$ˆy×$×$×$×$×$Ò$˜9×$×$Ó$˜9×$×$×$×$×$×$Ñ$Ø"ˆŒØ"ˆ�r7   c                 ó`  — i }d}d}dD ]�  }t        |r| j                  nt        j                  j                  |«      }t        |r| j
                  nt        j                  j                  |«      }|j                  ||«      }|||<   |xr ||k(  }|xr ||k(  }Œ‘ t        j                  di |¤ŽS )NT)rÆ   rÇ   r'   rG   )rª   r>   rQ   r  r<   r?   r;   r«   )	r  r­   r¸   Ú	low_boundÚ
high_boundrI   r»   r¼   r½   s	            r5   r@  zTimedeltaStrategy.do_drawL  s§   € ØˆØˆ	Øˆ
Ø7ò 	4ˆDÜ©I˜$Ÿ.š.¼2¿<¹<×;KÑ;KÈTÓRˆCÜ©Z˜4Ÿ>š>¼R¿\¹\×=MÑ=MÈtÓTˆDØ×#Ñ# C¨Ó.ˆCØˆF�4‰LØ!Ò0 c¨S¡jˆIØ#Ò3¨¨t©‰Jð	4ô �|‰|Ñ%˜fÑ%Ð%r7   rh   ra  .c                 ó,  — t        |«      t        j                  urt        |›d�«      ‚| j                  |cxk  r| j
                  k  s*n t        |›d| j                  ›d| j
                  ›d�«      ‚|j                  |j                  |j                  fS )Nz is not a timedeltare  rf  rg  )	r\   rQ   r  r   r>   r?   rÆ   rÇ   r'   rQ  s     r5   rh  zTimedeltaStrategy._invertY  s„   € Ü�‹;œbŸl™lÑ*Ü % Ð*=Ð>Ó?Ð?Ø—‘ %Ô9¨4¯>©>Ô9ÜØ�)˜: d§n¡nÐ%7°r¸$¿.¹.Ð9KÈ1ÐMóð ð —
‘
˜EŸM™M¨5×+=Ñ+=Ð>Ð>r7   )
rþ   r]   rÿ   r  r@  r
   rØ   r   rh  ru  rv  s   @r5   r£  r£  C  s)   ø„ ô#ò&ð?˜Sð ? U¨7°C¨<Ñ%8÷ ?r7   r£  c                 óÄ   — t        t        j                  | d«       t        t        j                  |d«       t        | |dd«       | |k(  rt	        | «      S t        | |¬«      S )zÑtimedeltas(min_value=datetime.timedelta.min, max_value=datetime.timedelta.max)

    A strategy for timedeltas between ``min_value`` and ``max_value``.

    Examples from this strategy shrink towards zero.
    r>   r?   r¡  )r   rQ   r  r   r   r£  r¡  s     r5   Ú
timedeltasrª  c  sQ   € ô Œr�|‰|˜Y¨Ô4ÜŒr�|‰|˜Y¨Ô4Ü˜ I¨{¸KÔHØ�IÒÜ�I‹ÐÜ y¸IÔFÐFr7   c                 ó`  — t        | t        «      }|�sddt        j                  «       v st	        j
                  t         «      rt	        j                  t         «      nddt        j                  «       v st	        j
                  | «      rt	        j                  | «      nddt        j                  «       v st	        j
                  t        «      rt	        j                  t        «      ndt	        j                  |«      dœz  }t        t	        j                  |«      «      ‚d }| D ],  }t        |«      j                  |«      j                  «       sŒ, y |j                  d«      �^ }}dd	j                  |«      z   }	 t        j                  |«      |z  j                  «       S # t         $ r Y y
w xY w)Nr  r)   ÚtzpathrØ   r  Tú/ztzdata.zoneinfo.r_  F)r)   rØ   r€   r�   r~   r‚   rƒ   r…   r†   r   ÚjoinpathÚexistsÚsplitÚjoinr   ÚfilesÚModuleNotFoundError)r¬  rò   r‰   rµ   ÚrootÚpackage_locÚresource_nameÚpackages           r5   Ú_valid_key_cacheabler¸  v  s  € ä�fœeÓ$Ð$Ò$×$×$×$×$Õ$Œ:×$×$Ó$Œ:×$×$×$×$×$Ò$�f×$×$Ó$�f×$×$×$×$×$Ò$œe×$×$Ó$œe×$×$Ô$Ð$×$×$×$×$×$Ð$Øò ˆÜ�‹:×Ñ˜sÓ#×*Ñ*Õ,áðð '*§i¡i°£nÑ#ˆ�mØ$ s§x¡x°Ó'<Ñ<ˆð	Ü—O‘O GÓ,¨}Ñ<×DÑDÓFÐFøÜ"ò 	Ùð	ús   Å;%F! Æ!	F-Æ,F-c           	      ó  — t        j                  «       5  	 t        j                  dt        «       dgt        t        j                  «       «      ¢­}ddd«       d„ }D �cg c]  } ||«      sŒ|‘Œ }}t        |«      g}| r]dD ]X  }|D �cg c]  } ||› d|› �«      sŒ|‘Œ }}|sŒ#|j                  t        |«      j                  |› d�j                  «      «       ŒZ |S # t        $ r Y Œ¼w xY w# 1 sw Y   Œ xY wc c}w c c}w )a&  SampledFromStrategy branches for IANA keys: plain keys first, then one
    branch per allowed prefix, with the prefix applied as a sampled_from
    transformation. one_of's branch selector is therefore the prefix choice,
    which shrinks towards - and can be re-encoded as - an unprefixed key.ÚignoreÚUTCNc                 óD   — | dk(  xs t        t        j                  | «      S )Nr»  )r¸  ÚzoneinfoÚTZPATHrñ   s    r5   Ú	valid_keyz+_timezone_key_strategies.<locals>.valid_key˜  s   € Ø�e‰|ÒIÔ3´H·O±OÀSÓIÐIr7   )ÚposixÚrightr­  z/{})ÚwarningsÚcatch_warningsÚsimplefilterÚEncodingWarningÚ	NameErrorrõ   r½  Úavailable_timezonesr   r×   ÚmapÚformat)Úallow_prefixrÇ  r¿  rò   ÚplainÚbranchesÚprefixÚkeyss           r5   Ú_timezone_key_strategiesrÏ  ˆ  s  € ô
 
×	 Ñ	 Ó	"ñ Oð	Ü×!Ñ! (¬OÔ<ð
  %ÐN¤v¬h×.JÑ.JÓ.LÓ'MÑNÐ÷OòJð
 0ÖB�S±9¸Sµ>ŠSÐB€EÐBÜ˜UÓ#Ð$€HÙØ(ò 	QˆFØ#(ÖI˜C©I¸¸ÀÀ#ÀÐ6GÕ,H’CÐIˆDÐIÚØ—‘¤¨TÓ 2× 6Ñ 6¸&¸ÀÐ7G×7NÑ7NÓ OÕPð	Qð €Oøô) ò 	Ùð	ú÷Oð Oüò  Cùò JsE   •C1—C"±!C1Á!C=Á/C=ÂDÂDÃ"	C.Ã+C1Ã-C.Ã.C1Ã1C:©rÊ  rÊ  c                 óN   — t        t        | d«       t        t        | ¬«      «      S )at  A strategy for :wikipedia:`IANA timezone names <List_of_tz_database_time_zones>`.

    As well as timezone names like ``"UTC"``, ``"Australia/Sydney"``, or
    ``"America/New_York"``, this strategy can generate:

    - Aliases such as ``"Antarctica/McMurdo"``, which links to ``"Pacific/Auckland"``.
    - Deprecated names such as ``"Antarctica/South_Pole"``, which *also* links to
      ``"Pacific/Auckland"``.  Note that most but
      not all deprecated timezone names are also aliases.
    - Timezone names with the ``"posix/"`` or ``"right/"`` prefixes, unless
      ``allow_prefix=False``.

    These strings are provided separately from Tzinfo objects - such as ZoneInfo
    instances from the timezones() strategy - to facilitate testing of timezone
    logic without needing workarounds to access non-canonical names.

    .. note::

        `The tzdata package is required on Windows
        <https://docs.python.org/3/library/zoneinfo.html#data-sources>`__.
        ``pip install hypothesis[zoneinfo]`` installs it, if and only if needed.

    On Windows, you may need to access IANA timezone data via the :pypi:`tzdata`
    package.  For non-IANA timezones, such as Windows-native names or GNU TZ
    strings, we recommend using :func:`~hypothesis.strategies.sampled_from` with
    the :pypi:`dateutil <python-dateutil>` package, e.g.
    :meth:`dateutil:dateutil.tz.tzwin.list`.
    rÊ  rÐ  )r   r  r   rÏ  rÐ  s    r5   Útimezone_keysrÒ  §  s"   € ôJ Œt�\ >Ô2ÜÔ*¸ÔEÓFÐFr7   F)Úno_cacherÓ  zzoneinfo.ZoneInfoc                 óê   — t        t        | d«       | rt        j                  j                  nt        j                  }t        t        d¬«      D �cg c]  }|j                  |«      ‘Œ c}«      S c c}w )aD  A strategy for :class:`python:zoneinfo.ZoneInfo` objects.

    If ``no_cache=True``, the generated instances are constructed using
    :meth:`ZoneInfo.no_cache <python:zoneinfo.ZoneInfo.no_cache>` instead
    of the usual constructor.  This may change the semantics of your datetimes
    in surprising ways, so only use it if you know that you need to!

    .. note::

        `The tzdata package is required on Windows
        <https://docs.python.org/3/library/zoneinfo.html#data-sources>`__.
        ``pip install hypothesis[zoneinfo]`` installs it, if and only if needed.
    rÓ  TrÐ  )r   r  r½  ÚZoneInforÓ  r   rÏ  rÈ  )rÓ  ÚctorrÎ  s      r5   rp  rp  Ð  sX   € ô Œt�X˜zÔ*Ù)1Œ8×Ñ×%Ò%´x×7HÑ7H€Dô Ü$<È$Ô$OÖP˜Dˆ�‰�$�ÒPóð ùÚPs   ÁA0)NN)pÚbuiltinsr€   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter~   rl   rQ   Úoperatorr.   ÚsysrÂ  r½  Ú	functoolsr   r   r   Ú	importlibr   Úpathlibr   Útypingr   r	   r
   r   Úhypothesis.errorsr   r   Ú%hypothesis.internal.conjecture.choicer   Úhypothesis.internal.validationr   r   Ú$hypothesis.strategies._internal.corer   Ú$hypothesis.strategies._internal.lazyr   Ú$hypothesis.strategies._internal.miscr   r   r   Ú*hypothesis.strategies._internal.strategiesr   r   r   r   r   r   Ú%hypothesis.strategies._internal.utilsr   r   r   ÚNaiveDatetimeÚAwareDatetimeÚmodulesÚgetrÚ   rœ  r‰  r  rÁ   r6   rC   rU   ra   rj   ro   rq   rŒ   r™   r¾   rÄ   râ   rã   rÕ   rÖ   ró   r;  rK  Ú_LEAP_SECONDSrö   rÎ   rÓ   rß   rä   rû   rô   rý   r  rq  rR   r  r¨   r‚  r„  r†  r©   r<   r;   rŒ  r“  r•  rŸ  r£  rª  r¸  rÏ  rT  rÒ  rp  r  rG   r7   r5   ú<module>rî     sj  ð÷ „ Ó Û Û 
Û Û ß /Ñ /Ý Ý ß :Ó :ç ;Ý 9ß KÝ =Ý Bß DÑ D÷÷ õ CáÝ(à˜bŸk™k©8°D«>Ð9Ñ:€MØ˜bŸk™k©8°C«=Ð8Ñ9�MØ�;‰;�?‰?Ð,Ó-Ð-€RÐ-Ø˜bŸk™k¨2¯;©;°tÓ+<Ð<Ñ=€MØ˜bŸk™k¨2¯;©;°sÓ+;Ð;Ñ<�Mà$&§K¡KÐ/€M�Mà$€	Ø7€	àˆr�|‰|¨Ô+€ò
òò8ò$:ò*ò&LòòòD	0ð 09¸9Ñ/Dó+ò\(ð ˆ2�;‰;�t˜Q Ó"€Øˆ2�;‰;�t˜Q Ó"€ð ˆb�l‰l Ô"€Ø
ˆ"�,‰,˜qÔ
!€Ø�—‘ 7Ô+€ð €	à€B‡L�L˜¨Ô+Ø€B‡L�L�q qÔ)Ø€B‡L�L�aÔð€ð €B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜ÓØ€B‡K�K��a˜Óð9€ð< &Ø€B‡K�K��a˜ÓØ€B‡K�K��a˜Óà€B‡K�K��a˜˜Q  AÓ&ð	)ñ Ð òò<ò
*ñ\ �4Ôñ6ó ð6ñ �3Ôñ%ó ð%ôPJ˜Iô Jôf)�~ô f)ðR 
à&*Ø&*ð(ð .2ò	(Ø˜tÑ#ð(à˜tÑ#ð(ð ˜dÑ# dÑ*ð	(ð
 �MÑ"ò(ó 
ð(ð 
à$(Ø$(ð(ð
 !ò(Ø�{‰{˜TÑ!ð(à�{‰{˜TÑ!ð(ð ˜bŸi™iÑ(ð	(ð
 ð(ð �MÑ"ò(ó 
ð(ð 
àØð&ð
 !ò&Øð&àð&ð ˜bŸi™i¨$Ñ.Ñ/ð	&ð
 ð&ð �B—K‘KÑ ò&ó 
ð&ñ ¨Ô-à$(Ø$(ð`Nð :>Ø ò`NØ�{‰{˜TÑ!ð`Nà�{‰{˜TÑ!ð`Nð ˜bŸi™i¨$Ñ.Ñ/°$Ñ6ð	`Nð
 ð`Nð �B—K‘KÑ ò`Nó .ð`NðF �"—'‘'˜$  1Ó%€òô2)�>ô 2)ñj ¨Ô-àŸ™Ÿ™ØŸ™Ÿ™ð9ñ 37³&ò	9Ø�w‰wð9à�w‰wð9ð ˜bŸi™i¨$Ñ.Ñ/ð	9ð
 �B—G‘GÑò9ó .ð9ò20ô')�>ô ')ñT ¨Ô-àŸ™Ÿ™¸2¿7¹7¿;¹;ñ.Ø�w‰wð.Ø13·±ð.à�B—G‘GÑò.ó .ð.ô.?˜ô ?ñ@ ¨Ô-à Ÿl™l×.Ñ.Ø Ÿl™l×.Ñ.ñGØ�|‰|ðGà�|‰|ðGð �B—L‘LÑ!òGó .ðGð$ ñó ðò"ñ> ¨Ô-ð
 ò	%Gð ð	%Gð
 �CÑò%Gó .ð%GñP ¨Ô-Ø"'ò ˜4ð ¨NÐ;NÑ,Oò ó .ðð2 �
r7   