
    i+                       S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJrJrJrJrJrJr  SSKJrJr  SSKJr  SSKJr  SSKJ r   SS	K
J!r!  SS
KJ"r"  SSK#J$r$J%r%J&r&J'r'  SSKJ(r(  SSK)J*r+  SSK,J-r-J.r.J/r/J0r0J1r1J2r3  SSK4J5r5J6r6  SSK7J8r8J9r9  SSK:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrI  SSKJJKrK  SSKLJMrMJNrNJOrOJPrPJQrQJRrR  SSKSJTrT  SSKUJVrVJWrW  SSKXJYrYJZrZ  SSK[J\r\J]r]  SSK^J_r_J`r`  SSKaJbrb  SSKcJdrd  SSKeJfrfJgrgJhrhJiriJjrj  SSKkJlrl  SSKmJnrnJoroJprpJqrqJrrr  SSKsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}  SSK~JrJrJrJrJr  SS KJr  SS!KJrJrJrJr  SS"KJrJrJr  SS#KJr  SS$KJrJrJr  SS%KJr  SS&KJr  SS'KJr  SS(KJr  \&" S)\S*9rS+rS,rSr\" S- S.9r\" S,S+S/9 " S0 S15      5       r\" S,S,S/9 " S2 S35      5       r " S4 S55      rS6\S7\\/\4   4S8 jrS9\S:\S7\\/\4   4S; jrS<\\T   S7\4S= jrS<\\T   S7\4S> jrS:\S7\\T   4S? jr\ES@.SA jrSB rSC rSD r\" S,S+S/9 " SE SF5      5       rSG\$SH\\   SI\\\4   SJ\\\4   SK\\\4   S7\\\   \\\4   \4   4SL jrSM rS7\\\   SN4   4SO jrSP rSQ rSR r\&" SS\S*9rST\N\   S7\\   4SU jr\GR~                  S7\SV   4SW j5       r " SX SY5      rSZ\\   S7\\   4S[ jr SpSS\.S] jjr\GR~                  SqS^ j5       r\" S+S+S/9 " S_ S`5      5       r\'Sa\"S7\\SN\\$\$S4   S-  4   /\/ S4   4   4Sb j5       r\'Sc\\$   S7\\SN\\$\$S4   S-  4   /\Sd   4   4Se j5       r\'Sf\\$   \"-  S7\\SN\\$\$S4   S-  4   /\Sd   4   4Sg j5       rSc\\$   \"-  Sf\\$   \"-  S7\\SN\\$\$S4   S-  4   /\Sd   4   4Sh jrSSSSi.Sj\\   Sk\\$/\4   Sl\3S-  Sm\ S-  Sn\S-  S7\4So jjrg)rzFThis module provides the core primitives of Hypothesis, such as given.    N)defaultdict)Callable	Coroutine	GeneratorHashableIterableSequence)	dataclassfieldpartial)	Parameter)Random)Lock)EllipsisType)AnyBinaryIOTypeVaroverload)TestCase)
strategies)HealthCheckPhase	Verbosityall_settingslocal_settingssettings)BuildContextcurrently_in_test_context)choices_from_byteschoices_to_bytes)BackendCannotProceedDeadlineExceededDidNotReproduceFailedHealthCheckFlakyFailureFlakyReplayFoundFrozenHypothesisExceptionHypothesisWarningInvalidArgumentNoSuchExampleStopTestUnsatisfiableUnsatisfiedAssumption)observability)PYPYBaseExceptionGroupadd_notebad_django_TestCaseget_type_hintsint_from_bytes)ChoiceT)ConjectureDataStatus)BUFFER_SIZEConjectureRunner)ensure_free_stackframesgc_cumulative_time)BytestringProviderPrimitiveProvider)sort_key)deterministic_PRNG)InterestingOrigincurrent_pytest_itemformat_exceptionget_trimmed_tracebackis_hypothesis_file)fail_health_check)InfoObservationInfoObservationTypedeliver_observationmake_testcaseobservability_enabled)
convert_positional_argumentsdefine_function_signaturefunction_digestget_pretty_function_descriptionget_signatureimpersonateis_mocknicereprproxies	repr_call)MONITORING_TOOL_IDTraceTracerexplanatory_linestractable_coverage_report)
check_type)current_verbosityreportverbose_reportwith_reporter)describe_statisticsdescribe_targetsnote_statistics)NOTHING)ExSearchStrategycheck_strategynot_set)ThreadLocal)RepresentationPrinter)__version__TestFunc)boundFTc                      g N rr       N/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/hypothesis/core.py<lambda>ru      s    Drs   )_hypothesis_global_random)slotsfrozenc                   V    \ rS rSr% \\S'   \\S'   \" SS9r\\S'   \" SS9r\\S'   Sr	g)	Example   argskwargsN)defaultraisesreasonrr   )
__name__
__module____qualname____firstlineno__r   __annotations__r   r   r   __static_attributes__rr   rs   rt   rz   rz      s*    
IK%FC%%FC%rs   rz   c                   0    \ rS rSr% \\   \S'   \\S'   Srg)ReportableError   	fragments	exceptionrr   N)	r   r   r   r   liststrr   BaseExceptionr   rr   rs   rt   r   r      s    Cyrs   r   c                       \ rS rSrSrS\S\SS4S jrS\S\4S	 jr SS
\	S.S\
S\S\\	   \\\	   S4   -  SS 4S jjjrS\SS 4S jrSrg)example   a  
Add an explicit input to a Hypothesis test, which Hypothesis will always
try before generating random inputs. This combines the randomized nature of
Hypothesis generation with a traditional parametrized test.

For example:

.. code-block:: python

    @example("Hello world")
    @example("some string with special significance")
    @given(st.text())
    def test_strings(s):
        pass

will call ``test_strings("Hello World")`` and
``test_strings("some string with special significance")`` before generating
any random inputs. |@example| may be placed in any order relative to |@given|
and |@settings|.

Explicit inputs from |@example| are run in the |Phase.explicit| phase.
Explicit inputs do not count towards |settings.max_examples|. Note that
explicit inputs added by |@example| do not shrink. If an explicit input
fails, Hypothesis will stop and report the failure without generating any
random inputs.

|@example| can also be used to easily reproduce a failure. For instance, if
Hypothesis reports that ``f(n=[0, math.nan])`` fails, you can add
``@example(n=[0, math.nan])`` to your test to quickly reproduce that failure.

Arguments to ``@example``
-------------------------

Arguments to |@example| have the same behavior and restrictions as arguments
to |@given|. This means they may be either positional or keyword arguments
(but not both in the same |@example|):

.. code-block:: python

    @example(1, 2)
    @example(x=1, y=2)
    @given(st.integers(), st.integers())
    def test(x, y):
        pass

Noting that while arguments to |@given| are strategies (like |st.integers|),
arguments to |@example| are values instead (like ``1``).

See the :ref:`given-arguments` section for full details.
r|   r}   returnNc                     U(       a  U(       a  [        S5      eU(       d  U(       d  [        S5      e/ U l        [        [        U5      U5      U l        g )Nz8Cannot mix positional and keyword arguments for examplesz-An example must provide at least one argument)r,   hypothesis_explicit_examplesrz   tuple_this_example)selfr|   r}   s      rt   __init__example.__init__   sE    F!J  !"QRR;=)$U4[&9rs   testc                     [        US5      (       d  U R                  Ul        UR                  R                  U R                  5        U$ )Nr   )hasattrr   appendr   )r   r   s     rt   __call__example.__call__   s=    t;<<040Q0QD-))001C1CDrs    )r   r   	conditionr   r   .c                z   [        [        US5        [        [        US5        [        U[        5      (       a  [        U[        5      (       dC  [        U[        5      (       a  U(       a  [        S U 5       5      (       d  [        SU< S35      eU(       a$  [        R                  " U R                  X2S9U l        U $ )aD  Mark this example as an expected failure, similarly to
:obj:`pytest.mark.xfail(strict=True) <pytest.mark.xfail>`.

Expected-failing examples allow you to check that your test does fail on
some examples, and therefore build confidence that *passing* tests are
because your code is working, not because the test is missing something.

.. code-block:: python

    @example(...).xfail()
    @example(...).xfail(reason="Prices must be non-negative")
    @example(...).xfail(raises=(KeyError, ValueError))
    @example(...).xfail(sys.version_info[:2] >= (3, 12), reason="needs py 3.12")
    @example(...).xfail(condition=sys.platform != "linux", raises=OSError)
    def test(x):
        pass

.. note::

    Expected-failing examples are handled separately from those generated
    by strategies, so you should usually ensure that there is no overlap.

    .. code-block:: python

        @example(x=1, y=0).xfail(raises=ZeroDivisionError)
        @given(x=st.just(1), y=st.integers())  # Missing `.filter(bool)`!
        def test_fraction(x, y):
            # This test will try the explicit example and see it fail as
            # expected, then go on to generate more examples from the
            # strategy.  If we happen to generate y=0, the test will fail
            # because only the explicit example is treated as xfailing.
            x / y
r   r   c              3   p   #    U  H,  n[        U[        5      =(       a    [        U[        5      v   M.     g 7frq   )
isinstancetype
issubclassr   ).0rs     rt   	<genexpr> example.xfail.<locals>.<genexpr>'  s)      NT
1d#D
1m(DDfs   46zraises=z6 must be an exception type or tuple of exception types)r   r   )r]   boolr   r   r   r   r   r   allr,   dataclassesreplacer   )r   r   r   r   s       rt   xfailexample.xfail   s    P 	4K03)vt$$FM)J)Jvu%% NT   "6)QR  !,!4!4""6"D rs   whencec                F    [        U[        5      (       d  [        S5      eU $ )a  Attach a machine-readable label noting what the origin of this example
was. |example.via| is completely optional and does not change runtime
behavior.

|example.via| is intended to support self-documenting behavior, as well as
tooling which might add (or remove) |@example| decorators automatically.
For example:

.. code-block:: python

    # Annotating examples is optional and does not change runtime behavior
    @example(...)
    @example(...).via("regression test for issue #42")
    @example(...).via("discovered failure")
    def test(x):
        pass

.. note::

    `HypoFuzz <https://hypofuzz.com/>`_ uses |example.via| to tag examples
    in the patch of its high-coverage set of explicit inputs, on
    `the patches page <https://hypofuzz.com/example-dashboard/#/patches>`_.
z.via() must be passed a string)r   r   r,   )r   r   s     rt   viaexample.via4  s"    0 &#&&!"BCCrs   )r   r   )T)r   r   r   r   __doc__r   r   rn   r   r   r   r   r   r   r   r   r   rr   rs   rt   r   r      s    1f	:c 	:S 	:T 	:X (  : HU:: 	:
 ]#eD,?,D&EE: 
:x# Y rs   r   seedr   c                    ^  U 4S jnU$ )a  
Seed the randomness for this test.

``seed`` may be any hashable object. No exact meaning for ``seed`` is provided
other than that for a fixed seed value Hypothesis will produce the same
examples (assuming that there are no other sources of nondeterminisim, such
as timing, hash randomization, or external state).

For example, the following test function and |RuleBasedStateMachine| will
each generate the same series of examples each time they are executed:

.. code-block:: python

    @seed(1234)
    @given(st.integers())
    def test(n): ...

    @seed(6789)
    class MyMachine(RuleBasedStateMachine): ...

If using pytest, you can alternatively pass ``--hypothesis-seed`` on the
command line.

Setting a seed overrides |settings.derandomize|, which is designed to enable
deterministic CI tests rather than reproducing observed failures.

Hypothesis will only print the seed which would reproduce a failure if a test
fails in an unexpected way, for instance inside Hypothesis internals.
c                 N   > TU l         [        U SS 5      n[        US S9U l        U $ )N!_hypothesis_internal_use_settings)database)_hypothesis_internal_use_seedgetattrSettingsr   )r   current_settingsr   s     rt   acceptseed.<locals>.acceptq  s4    -1*"4)LdS19t2
. rs   rr   )r   r   s   ` rt   r   r   R  s    > Mrs   versionblobc                    ^ ^ UU 4S jnU$ )a  
Run the example corresponding to the binary ``blob`` in order to reproduce a
failure. ``blob`` is a serialized version of the internal input representation
of Hypothesis.

A test decorated with |@reproduce_failure| always runs exactly one example,
which is expected to cause a failure. If the provided ``blob`` does not
cause a failure, Hypothesis will raise |DidNotReproduce|.

Hypothesis will print an |@reproduce_failure| decorator if
|settings.print_blob| is ``True`` (which is the default in CI).

|@reproduce_failure| is intended to be temporarily added to your test suite in
order to reproduce a failure. It is not intended to be a permanent addition to
your test suite. Because of this, no compatibility guarantees are made across
Hypothesis versions, and |@reproduce_failure| will error if used on a different
Hypothesis version than it was created for.

.. seealso::

    See also the :doc:`/tutorial/replaying-failures` tutorial.
c                    > TT4U l         U $ rq   )*_hypothesis_internal_use_reproduce_failure)r   r   r   s    rt   r   !reproduce_failure.<locals>.accept  s    ;BD/7rs   rr   )r   r   r   s   `` rt   reproduce_failurer     s    0 Mrs   choicesc                 2    S[         < S[        U 5      < S3$ )Nz@reproduce_failure(, ))rm   encode_failure)r   s    rt   reproduction_decoratorr     s     r.2I1LANNrs   c                     [        U 5      n[        R                  " U5      n[        U5      [        U5      :  a  SU-   nOSU-   n[        R
                  " U5      $ )N       )r!   zlibcompresslenbase64	b64encode)r   r   
compresseds      rt   r   r     sN    G$Dt$J
:T"z!t|D!!rs   c                     [         R                  " U 5      nUS S nUS:X  a  USS  nO4US:X  a   [        R
                  " USS  5      nO[        SU < SU< 35      e[        U5      nUc  [        SU < 35      eU$ ! [         a    [        SU < 35      S ef = f! [        R                   a  n[        SU < 35      UeS nAff = f)	NzInvalid base64 encoded string:    r   r   z"Invalid zlib compression for blob zCould not decode blob z: Invalid start byte z,Invalid serialized choice sequence for blob )r   	b64decode	Exceptionr,   r   
decompresserrorr    )r   decodedprefixerrr   s        rt   decode_failurer     s    T""4( Ra[F!"+	5	oogabk2G $TH,A&L
 	
 !)G LTHUVVN-  T ?xHItST zz 	!4TH=	s"   A< B <BC.B>>Cexcc                b   ^ ^ [        U5      UU 4S j5       nSUl        [        UUUS9Ul        U$ )Nc                     > T" T5      erq   rr   )	argumentsr}   r   messages     rt   wrapped_test_invalid.<locals>.wrapped_test  s    'lrs   T)
inner_test_get_fuzz_target_given_kwargs)rS   is_hypothesis_testHypothesisHandle
hypothesis)r   r   r   given_kwargsr   s   ``   rt   _invalidr     sB      '+L#.%"L
 rs   c                 T   [        [        XS9nU(       d  U(       d  U" S5      $ [        UR                  R	                  5       5      nU Vs/ s H  ofR
                  UR                  L d  M  UPM!     nnU Vs/ s H  ofR
                  UR                  L d  M  UPM!     nnU(       a  XW:w  a  U" S5      $ [        U5      [        U5      :  a1  U" SU R                   S[        U5       S[        U5       SU< 35      $ SU;   a  U" S	5      $ U(       a  U(       a  U" S
5      $ U V	Vs/ s H(  oXx-    Vs1 s H  ofR                  iM     sn;  d  M&  U	PM*     n
n	nU
(       af  U/ :X  d  US   R
                  US   R                  LaA  U
S   nSnU[        ;   a  SU SX;   < S3nU" U R                   SU< SU SX;   < SU 3	5      $ [        S U 5       5      (       a  U" S5      $ [        U5       VVs/ s H  u  pU[        L d  M  U< SU S3PM     snnUR!                  5        VVs/ s H  u  pU[        L d  M  U SU< 3PM     snn-   nU(       a4  [        U5      S:  a  SOSnU" SU S3SR#                  U5      -   [$        S9$ gs  snf s  snf s  snf s  snn	f s  snnf s  snnf ) aH  Check the arguments to ``@given`` for basic usage constraints.

Most errors are not raised immediately; instead we return a dummy test
function that will raise the appropriate error if it is actually called.
When the user runs a subset of tests (e.g via ``pytest -k``), errors will
only be reported for tests that actually ran.
r   r   z/given must be called with at least one argumentzvpositional arguments to @given are not supported with varargs, varkeywords, positional-only, or keyword-only argumentsz"Too many positional arguments for z,() were passed to @given - expected at most z arguments, but got  .z... was passed as a positional argument to @given, but may only be passed as a keyword argument or as the sole argument of @givenz5cannot mix positional and keyword arguments to @givenr   r   z. Did you mean @settings(=z)?z&() got an unexpected keyword argument z, from `z` in @givenc              3   P   #    U  H  oR                   UR                  Lv   M     g 7frq   )r~   emptyr   ps     rt   r   "is_invalid_test.<locals>.<genexpr>  s     
4V99AGG#V   $&z0Cannot apply @given to a function with defaults.z (arg r   r   r   strategyz$Cannot generate examples from empty : r   r   N)r   r   r   
parametersvalueskindPOSITIONAL_OR_KEYWORDKEYWORD_ONLYr   r   nameVAR_KEYWORDr   any	enumeratere   itemsjoinr/   )r   original_siggiven_argumentsr   invalidparamsr   
pos_paramskwonly_paramskextra_kwargsargextraidxsr  r   stratss                     rt   is_invalid_testr    s    hTEG|HII,))0023F#IVvv1H1H'H!VJI &C1&&ANN*BQMC6/F
 	

 ?c*o-0 @)),Z(9 :""%o"6!7q8KM
 	
 oM
 	

 <NOOaZ=W,X=WVV=W,X#X<   2r
@V@V)V1o,/uAl6G5J"ME}}oCC7 KE<,/{5'C
 	
 
4V
444IJJ
 ,5_+E+Eg1%vcU!+E(4(:(:(<M(<WTWD61%(<MNE !$UaZ26("=		%@PP
 	
 W JC. -Y"MsN   J	,J	8JJ&J2JJJ2JJ(J$;J$Jc              #     #    [        U [        5      (       d   eUR                  R                  5        Vs/ s H*  nUR                  UR
                  L d  M  UR                  PM,     nn[        [        USS5      5       GH  n[        U[        5      (       d   eUR                  (       a  UR                  (       a   e[        S UR                  R                  5        5       5      (       a  [        S5      e[        UR                  5      [        U5      :  a-  [        S[        U5       S[        UR                  5       35      e[        [!        U[        UR                  5      * S  UR                  SS95      nO[        UR                  5      nS	R#                  S
 [%        UR&                  R(                  5       5       5      n	S	R#                  S [%        U5       5       5      n
X:w  a  [        SU	 SU
 35      S e[+        U5      R-                  U5      (       d   eUR/                  U5        [0        R2                  U R4                  R6                  ;  a  GM  [9        U R4                  5         / n[:        R<                  " / 5      n [?        U R@                  USSUS9n[C        URD                  5         URF                  c	  U" 5         GO^S	R#                  S U 5       5      S	R#                  S URI                  5        5       5      -   n U" 5         SURJ                   3[M        URJ                  5      -  nURF                  [N        L a  SnO[        URF                  [P        5      (       d  URF                  RR                  nOu[        URF                  5      S:X  a  URF                  S   RR                  nOBS	R#                  S URF                  S S  5       5      SURF                  S   RR                   3-   nURU                  5       S   S;   n[W        SSU-   SU SU SU S3	5      eS S S 5        U(       a4  US   R                  S$5      (       d   eUS   R                  S$S%S5      US'   UR                  5         [        5       (       aA  [        U R                  U R                  US&U R                  U R                  S'9n[        U5        U(       a6  [        US   R                  S(S)S5      5        USS   H  n[        U5        M     S S S 5        GM     g s  snf ! [Y        5        aV  n[        UURF                  5      (       d  e U RZ                  R]                  [_        U R`                  X(5      5         S nAGNRS nAfURF                   a  n[        SU S U< S!35      UeS nAff = f! , (       d  f       GN= f! [b         aZ    [d        Rf                  " [h        5         URk                  [l        Rn                  5        S S S 5         GM  ! , (       d  f        GN= f[N         Ga  nURq                  [s        5       5      n[        U[Y        5       5      (       aY  [        S" UR                  [Q        UR                  R                  5       5      -    5       5      (       a  [u        S#5      nUUl;        Un[d        Rf                  " [h        5         URk                  [l        Rn                  5        S S S 5        O! , (       d  f       O= f[y        UU5      v   U R4                  Rz                  (       a  [|        (       a  [        U[Y        5       5      (       a  [        U[        5       5      (       d   S nAU(       a4  US   R                  S$5      (       d   eUS   R                  S$S%S5      US'   UR                  5         [        5       (       aA  [        U R                  U R                  US&U R                  U R                  S'9n[        U5        S S S 5        GM   S nAU(       a4  US   R                  S$5      (       d   eUS   R                  S$S%S5      US'   UR                  5         [        5       (       aA  [        U R                  U R                  US&U R                  U R                  S'9n[        U5        S S S 5          g S nAff = f! U(       a4  US   R                  S$5      (       d   eUS   R                  S$S%S5      US'   UR                  5         [        5       (       aB  [        U R                  U R                  US&U R                  U R                  S'9n[        U5        f f = f! , (       d  f       GM  = f7f)*Nr   rr   c              3   P   #    U  H  oR                   UR                  L v   M     g 7frq   )r   POSITIONAL_ONLYr   s     rt   r   ,execute_explicit_examples.<locals>.<genexpr>&  s!      5U!+++5Ur   ztCannot pass positional arguments to @example() when decorating a test function which has positional-only parameters.z:example has too many arguments for test. Expected at most z	 but got Tstrictr   c              3   8   #    U  H  n[        U5      v   M     g 7frq   reprr   r  s     rt   r   r  7  s      
JDGGJ   c              3   8   #    U  H  n[        U5      v   M     g 7frq   r  r   s     rt   r   r  :  s     H1GAQ1Gr!  z/Inconsistent args: @given() got strategies for z#, but @example() got arguments for )is_finalprint_exampleexample_kwargsc              3   8   #    U  H  n[        U5      v   M     g 7frq   rU   )r   xs     rt   r   r  Y  s     (Hi!ir!  c              3   F   #    U  H  u  pU S [        U5       3v   M     g7f)r   Nr'  r   r  vs      rt   r   r  Y  s&      U=STQqc8A;-0=Ss   !z	 because r   r   r   c              3   8   #    U  H  oR                   v   M     g 7frq   )r   )r   exs     rt   r   r  y  s     -XDWbkkDWr!  r   z, or AEIOUz
Expected anr   z from @example(r   z, but no exception was raised.z	@example(z) raised an expected z6, but Hypothesis does not treat this as a test failurec              3   B   #    U  H  n[        U[        5      v   M     g 7frq   )r   rg   )r   r  s     rt   r   r    s"      JL sN33Ls   zThe @example() decorator expects to be passed values, but you passed strategies instead.  See https://hypothesis.readthedocs.io/en/latest/reference/api.html#hypothesis.example for details.zFalsifying examplezFalsifying explicit examplezexplicit example)	run_startpropertydatahow_generatedrepresentationtiming
FalsifyingTrying)Kr   StateForActualGivenExecutionr   r   r   r  r  reversedr   rz   r|   r}   r  r,   r   dictzipr  sortedr   r   set
isdisjointupdater   explicitr   phasesr   r9   for_choicesr   execute_oncera   r   r   r  r   r   r   r   r   upperAssertionErrorfailure_exceptions_to_catchxfail_example_reprsaddrW   r   r0   
contextlibsuppressr.   conclude_testr:   INVALIDwith_tracebackrF   r+   	__cause__r   report_multiple_bugspytest_shows_exceptiongroupsskip_exceptions_to_reraise
startswithr   freezerM   rL   _start_timestamptest_identifier_string_repr_timing_featuresrK   r`   )stater   r   r}   r	  r   posargsr   r%  	given_kwsexample_kwsfragments_reported
empty_dataexecute_examplebitsr   r  vowelr   newtcfs                         rt   execute_explicit_examplesre    s    e9:::: ((//11A66Q,,, 	1   GL2PRTUV'7++++ <<~~%% 5A5L5L5S5S5U   &L  7<< 3w</%P7|nIc',,.?-@B  "GS..017<<MN "'..1NII 
#L$;$;$I$IJ
 
	 iiH1GHH#!A) M44?=B  >"--f5555f%>>!6!66ENN+!#'33B7Jp,")&&!"&#1# ##5#<#<=~~-')  $yy(Hi(HH499 U=K=Q=Q=SU L  $+-& (10@%ADDX%XF&~~>'2%/%F%F'.~~'>'>!$W^^!4!9'.~~a'8'A'A %)II-XGNNSVTVDW-X$X(-gnnR.@.I.I-J&K%L !% %)JJLOw$>E"0",S5[M4&PTvUV#)(*H!J# S >p &-a0;;<PQQQQ,>q,A,I,I,.KQ-&q) !!#(**&"'"8"8!&!6!6'&8','9'9$55B (+!1!4<<\8UVWX+AB/A"1% 0o ,+U WJ  ;< #-c7>>#B#B % "5599 )%**i P   '~~ ' #2"+D61Fsg NW !W# $''	'% >=Z ) =  ((2,,V^^< 3222  !
 (()>)@A
 c#>#@AAc J&||eGNN4I4I4K.LLJ G G ,0C %(CMC((2,,V^^< 322%&8#>>NN7744"3(C(EFF&s,F,HII &-a0;;<PQQQQ,>q,A,I,I,.KQ-&q) !!#(**&"'"8"8!&!6!6'&8','9'9$55B (+g ,+B %-a0;;<PQQQQ,>q,A,I,I,.KQ-&q) !!#(**&"'"8"8!&!6!6'&8','9'9$55B (+g ,+@!F &-a0;;<PQQQQ,>q,A,I,I,.KQ-&q) !!#(**&"'"8"8!&!6!6'&8','9'9$55B (+ +U ,+s(  4f TT'H
f 1e-,V?7AV-TDV-,V?4Ce-f V*	-AU>	8V->V*	V%	%V*	*V--
V<7V?:c<V??$c	# X	c	c
Xc	cc	,B%c [:	1	c:
\A-c1c5Be-f cBe-:
f c		cBe**e--
e=	7	f c                    UR                   nS Ul        UR                  b  [        UR                  5      $ UR                  (       a  [        [        [        U 5      5      5      $ [        b  [        [        5      $ [        R                  c  [        5       [        l	        [        R                  R                  S5      nX1l        [        U5      $ )N   )r   '_hypothesis_internal_use_generated_seedr   r   derandomizer7   rP   global_force_seedthreadlocalrv   getrandbits)r   r   r   r   s       rt   get_random_for_wrapped_testrm    s    ==H;?L811=l@@AAn_T%:;<<$'((,,406-00<<SAD;?8$<rs   c                   >    \ rS rSr% \\S'   \\S'   \\S'   \\S'   Srg)Stuffi  selfyr|   r}   r   rr   N)	r   r   r   r   r   r   r   r;  r   rr   rs   rt   ro  ro    s    J
KLrs   ro  r   r   r}   r   r  c                    S n[        XU5      u  pUR                  5        Vs/ s H)  ofR                  UR                  L d  M  UR                  PM+     nnU(       a  UR                  US   5      nOU(       a  US   n[        U5      (       a  S n[        U5      n[        5          UR                  5        H  u  p[        XS9  U	R                  5         M      S S S 5        [        XQX#S9n
XU
4$ s  snf ! , (       d  f       N!= f)Nr   )r  )rp  r|   r}   r   )rN   r   r   r  r  getrT   r   r=   r  rh   validatero  )r   r   r}   r   r  rp  r   rZ  r  r  stuffs              rt   process_arguments_to_givenru    s     E4\fUI
  &}}T!&&A<S<S2SvqvvGT

71:&	! u~~i I	 	" &&(DA1%JJL ) 
#
 fXEe##) U 
#	"s   C-C-$3C22
D c                  D   [        5       n S[        R                  ;   a,  U R                  [        R                  S   R                  5        S[        R                  ;   a,  U R                  [        R                  S   R
                  5        [        [        U [        S95      $ )a  Return a tuple of exceptions meaning 'skip this test', to re-raise.

This is intended to cover most common test runners; if you would
like another to be added please open an issue or pull request adding
it to this function and to tests/cover/test_lazy_import.py
unittest_pytest.outcomeskey)	r>  sysmodulesrI  SkipTestSkippedr   r=  r   
exceptionss    rt   rR  rR    sn     J
 S[[ s{{:.778S[[(s{{#56>>?
,--rs   .c                      [         [        [        /n S[        R                  ;   a,  U R                  [        R                  S   R                  5        [        U 5      $ )zReturn a tuple of exceptions meaning 'this test has failed', to catch.

This is intended to cover most common test runners; if you would
like another to be added please open an issue or pull request.
rx  )r   
SystemExitGeneratorExitr{  r|  r   Failedr   r  s    rt   rG  rG    sE     Z7JS[[(#++&89@@Ars   c                     U R                  U R                  R                  5        Vs/ s H=  nUR                  U;   a(  UR                  UR
                  UR                  4;   a  M;  UPM?     snSS9$ s  snf )z/Make an updated signature for the wrapped test.N)r   return_annotation)r   r   r   r  r   r  r  )r	  r   r   s      rt   new_given_signaturer  (  sw     ",,335
5,&FFq66GG	 5
    
 

s   :A2&A2c                     U" U 5      $ rq   rr   )r3  functions     rt   default_executorr  7  s    D>rs   c                   ^^^  U R                   mU4S j$ ! [         a     Of = f[        U S5      (       d  [        U S5      (       a7  [        U SS 5      =(       d    S m[        U SS 5      =(       d    S mUU4S jnU$ [        $ )Nc                 &   > T" [        X5      5      $ rq   r   )r3  r  r_  s     rt   ru   get_executor.<locals>.<lambda>A  s    ogh6M&Nrs   setup_exampleteardown_examplec                      g rq   rr   rr   rs   rt   ru   r  D  s    4rs   c                     g rq   rr   )r-  s    rt   ru   r  E  s    Drs   c                 R   > S n T" 5       nU" U 5      T" U5        $ ! T" U5        f = frq   rr   )r3  r  tokensetupteardowns      rt   executeget_executor.<locals>.executeG  s*    E ~s    
&)r_  AttributeErrorr   r   r  )runnerr  r_  r  r  s     @@@rt   get_executorr  ;  s    O 00 ON  
 v''76;M+N+N6H<6#5t<Q	  s    
$$Texcgroupc                     / nU R                    HE  n[        U[        5      (       a  UR                  [	        U5      5        M4  UR                  U5        MG     U$ rq   )r  r   r3   extend_flatten_groupr   )r  found_exceptionsr   s      rt   r  r  Y  sO     """c-..##N3$78##C(	 #
 rs   )NNNc               #     #     S v   g ! [          a  n U R                  [        5      u  pUc  e UR                  S 5      u  p4Ub  e [        U5      n[	        U5      S:X  a  US   nXfR
                  eUR                  [        5      u  pxU(       a  [        U5      S   nXfR
                  eUc   e[        [        U5      S S9eS n A ff = f7f)Nc                 .    [        U [        [        45      $ rq   )r   r.   r*   )es    rt   ru   +unwrap_markers_from_group.<locals>.<lambda>s  s    jX/B$CDrs   r   r   c                     U R                   $ rq   )testcounter)s_es    rt   ru   r    s    S__rs   ry  )r3   splitr)   r  r   rO  r.   min)	r  _frozen_exceptionsnon_frozen_exceptions_user_exceptionsflattened_non_frozen_exceptionsr  	stoptestsnon_stoptestss	            rt   unwrap_markers_from_groupr  c  s     -N +N4<NN64J1
 !( 388D

 & @N!@
' ./14/2A $ $9#>#>x#H 	  }-a0A$$$$ .+1LMMW+Ns%   C
	 C

CB/CCC
c                       \ rS rSrSS.S\S\S\4   S\S\S	\S
\	\
\4   S-  4S jjr\S\4S j5       rS rSSSSS.S jrS\S\S\4S jrS\SS4S jrS\S\S\\	-  SS4S jrS rSrg)r9  i  Nthread_overlaprt  r   .r   randomr   r  c                   Xl         X l        X0l        X@l        XPl        Uc  0 OUU l        [        UR                  5      U l        [        USS5      U l
        S U l        SU l        SU l        [        5       U l        SU l        SU l        [%        [        5      U l        [(        R(                  " 5       U l        SU l        0 U l        S U l        g )N%_hypothesis_internal_print_given_argsTrr   Fr   )rt  r   r   r  r   r  r  rp  test_runnerr   print_given_argslast_exceptionfalsifying_examplesever_executedr>  rH  failed_normallyfailed_due_to_deadliner   explain_tracestimerU  rW  rX  _runner)r   rt  r   r   r  r   r  s          rt   r   %StateForActualGivenExecution.__init__  s     
	 ($2$:b'4 'A4!
 ##% "-0U $&+#JUK
 !%		2404rs   r   c                 p    [        [        R                  SS 5      =(       d    [        U R                  5      $ )Nnodeid)r   rD   valuerQ   r   r   s    rt   rV  ,StateForActualGivenExecution.test_identifier  s1    %%x
 @,T->->?	@rs   c                 6   [        5       =(       a    [        R                  nU R                  =(       a[    U R                  (       + =(       aC    [
        R                  [
        R                  1R                  U R                  R                  5      nU=(       d    U$ rq   )rM   r1   OBSERVABILITY_COLLECT_COVERAGEr  r  r   shrinkexplainissubsetr   rB  )r   
_trace_obs_trace_failures      rt   _should_trace*StateForActualGivenExecution._should_trace  st     "#T(T(T 	    M///Mu}}-66t}}7K7KL 	
 +^+rs   F)r$  r#  expected_failurer%  c          	      n  ^ ^^^^^^^^ ST l         ST l        SmT R                  R                  c.  [	        5       (       d  [        T R                  5      U 4S j5       mO [        T R                  5      UUU 4S j5       mS[        SS4UUUUU UU4S jjn[        T R                  5         [        5          [        TTT R                  S	9 mSnTR                  R                  5          T R                  TU5      nSSS5        SSS5        SSS5        SSS5        Tb  Tu  p[        U[         5      (       a  ["        R$                  " S
 T R&                  R)                  5        5       5      =n
(       a\  [+        SUR,                  R/                  5       S-  S ST R                  R                  R/                  5       S-  S SU
S-  S S35        O[+        SU	-   5        [1        ST S3U/5      eW$ ! , (       d  f       N= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f)a  Run the test function once, using ``data`` as input.

If the test raises an exception, it will propagate through to the
caller of this method. Depending on its type, this could represent
an ordinary test failure, or a fatal error, or a control exception.

If this method returns normally, the test might have passed, or
it might have placed ``data`` in an unsuccessful state and then
swallowed the corresponding control exception.
Tr   Nc                     > [        5          [        5          TR                  " U 0 UD6sS S S 5        sS S S 5        $ ! , (       d  f       O= fS S S 5        g ! , (       d  f       g = frq   )r  r=   r   )r|   r}   r   s     rt   r   7StateForActualGivenExecution.execute_once.<locals>.test  s@    .02I2K99d5f5 3L2K002K2K000s   A<	A
A
	A
A$c                    > [         R                  " TR                  R                  5       5      n[         R                  " TR                  R                  5       5      n[        5       n[        5          [        5          [        R                  " 5       n TR                  " U 0 UD6n[        R                  " 5       n[         R                  " TR                  R                  5       5      U-
  n[         R                  " TR                  R                  5       5      U-
  n	[        5       U-
  n
Xu-
  U-
  U	-
  U
-
  nUU
S.TR                  ETR                  ETl         S S S 5        S S S 5        TR                  R                  =nb  TR                  R                  [         R"                  " 5       S5      (       dU  T(       d  US-  S-  nWUR%                  5       :  a2  ['        [(        R*                  " US9TR                  R                  5      eW$ ! [        R                  " 5       n[         R                  " TR                  R                  5       5      U-
  n[         R                  " TR                  R                  5       5      U-
  n	[        5       U-
  n
Xu-
  U-
  U	-
  U
-
  nUU
S.TR                  ETR                  ETl        f = f! , (       d  f       GNs= f! , (       d  f       GN}= f)N)zexecute:testz
overall:gcF      )seconds)mathfsum
draw_timesr   _stateful_run_timesr>   r  r=   r  perf_counterr   rX  r   deadliner  rr  	threading	get_identtotal_secondsr#   datetime	timedelta)r|   r}   arg_drawtimearg_stateful
arg_gctimestartresultfinishin_drawtimein_stateful	in_gctimeruntimecurrent_deadliner3  r#  r   s                rt   r   r    sn   #yy)?)?)AB#yy)A)A)H)H)JK/1
.02I2K --/E!%D!;F!;!%!2!2!4&*ii0F0F0H&IL&X IId&>&>&E&E&GH<W $ %7$8:$E	"(.;">"Ly"X,3*31 #oo1 #66	1- 3L0( *.)?)??%L !//33I4G4G4I5QQ#,<,AQ+F("2"@"@"BB.$..w?AWAW  5 "&!2!2!4&*ii0F0F0H&IL&X IId&>&>&E&E&GH<W $ %7$8:$E	"(.;">"Ly"X,3*31 #oo1 #66	1- 3L2K00s>   2K=KH&B3KKB5KK
K	K
K'r3  r   c           
      x	  > TR                   R                  b  TR                   R                  U l        TR                   R                  n[	        TR                   R
                  5      nTc(  TR                  TR                   R                  5      u  p4OTn0 nUR                  U5        Tb  [        TX5      mT(       d  [        5       [        R                  :  a  [        TS9nT(       a  UR                  S5        OUR                  S5        TR                  (       az  UR                  S5        UR                  TR                   UUSUSTR"                  R$                  ;   a  STR"                  R$                  S   -   OS U R&                  R(                  S9  [+        UR-                  5       5        [/        5       (       a  [        TS9nUR                  TR                   UUSUSTR"                  R$                  ;   a  STR"                  R$                  S   -   OS U R&                  R(                  S9  UR-                  5       Tl         T" U0 UD6U R2                  b   S	R5                  U R2                  5      Tl        [/        5       (       a  [        TS9nU R6                  R9                  5        Hn  u  pgUR;                  S
5      (       d  M   U R&                  R=                  U5      nUR                  S	URA                  S5       S35        URC                  U5        Mp     T=R0                  UR-                  5       -  sl        $ $ ! [>         a    Sn Nlf = f! [D         aJ  nS[G        U5      ;   a5  U RH                  b(  U RH                  u  p[K        XRM                  U
5      5        e S nAff = f! U R2                  b   S	R5                  U R2                  5      Tl        [/        5       (       a  [        TS9nU R6                  R9                  5        H  u  pgUR;                  S
5      (       d  M   U R&                  R=                  U5      nO! [>         a    Sn Of = fUR                  S	URA                  S5       S35        URC                  U5        M     T=R0                  UR-                  5       -  sl        f f = f)N)contextzFalsifying example:zTrying example:r   T)r   r   z# )force_split
arg_slicesleading_commentavoid_realization
zgenerate:Draw z$<backend failed to realize symbolic>z	generate:r   rg   )'rt  rp  hypothesis_runnerr|   r;  r}    prep_args_kwargs_from_strategiesr   r@  rW   r^   r   verboserl   textr  r   r3  slice_commentsproviderr  r_   getvaluerM   rW  _stateful_repr_partsr  _observability_argsr  rS  realizer"   removeprefixpretty	TypeErrorr   -_sampled_from_all_strategies_elements_messager4   format)r3  r|   r}   kw	argslicesprinterr  r  r  msg
format_argr  r%  r  r$  r   r   	text_reprs              rt   run6StateForActualGivenExecution.execute_once.<locals>.run  s   zz+)-)9)9&::??D$**++,F% ' H HJJ++!I $	MM"+%dD9	 1 3y7H7H H/@ LL!67LL!23((LL%%%$(#,  &)D)DD !7<<#>#>v#FF!%*.--*I*I &  w'')*$&&/@!!MM $( "W\\%@%@@ w||::6BB!&*mm&E&E "  %,$4$4$6!<T,V, ,,8(,		$2K2K(LD%(**3GDG'+'?'?'E'E'G??+;<<O(,(=(=e(D $LL2d.?.?.L-MR)PQ#NN51 (H %%)9)9);;% + $8 O(NO)  	 %A.JJV&*&X&XOCQ

: 67	 ,,8(,		$2K2K(LD%(**3GDG'+'?'?'E'E'G??+;<<O(,(=(=e(D#7 O(NO#LL2d.?.?.L-MR)PQ#NN51 (H %%)9)9);;% +s]   	M MMM
N,"AN''N,,N/ /A9R9-Q	R9	Q	R9Q	A!R9)r#  r   c              3   Z   #    U  H!  u  pUR                  S 5      (       d  M  Uv   M#     g7f)zexecute:N)rS  r*  s      rt   r   <StateForActualGivenExecution.execute_once.<locals>.<genexpr>  s'      * =||J/ A =s   +	+z;Unreliable test timings! On an initial run, this test took i  z.2fz#ms, which exceeded the deadline of z$ms, but on a subsequent run it took z ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None.z*Failed to reproduce exception. Expected: 
zHypothesis zY produces unreliable results: Falsified on the first call but did not on a subsequent one)r  rW  r   r  rM   rV   r   r9   r   rB   r   r   r  per_test_case_context_managerr  r   r#   r  r  rX  r  r_   r  r  r&   )r   r3  r$  r#  r  r%  r  r  r   	tracebackruntime_secsr  r   r
  s   ``````     @@@rt   rD  )StateForActualGivenExecution.execute_once  s   ( "	==!!)2G2I2ITYY6  6 TYY#  #JW	<n W	< W	< W	<x 4==) xd6G6G F<<> ))$4 ? ! *  '#3 I)%566 $		 * $ 5 5 ; ; =* !   !!*!2!2!@!@!BT!I# N O6}}--;;=DSI J33?$3Fs2K LL	L	 DyPQi[ )N N 
 C ?>  !  *)sT   *H%5HH(G0	;HHH%0
G>:H
HH
H"	H%%
H4r   r  c                 T   U R                   c   eUR                   Vs/ s H7  nX0R                   R                  ;   d  M  U R                   R                  U   PM9     nnU Vs/ s H  oUR                  PM     nnUR	                  U5        [        UR                  U5      $ s  snf s  snf rq   )r  _interesting_originsinteresting_examplesexpected_exceptionr   r&   r   )r   r   r  originr  r  r  s          rt   _flaky_replay_to_failure5StateForActualGivenExecution._flaky_replay_to_failure  s     ||''' 22 
2::: 6DLL--f52 	  

 ?SS>RF//>R
S'"CJJ
33 

 Ts   B B "B%r3  c                    [        5       n [        U R                  5       S9 n U R                  U5      nUR                  [
        R                  :X  a9  UR                  (       a(  U R                  S   R                  UR                  5        UR                  n SSS5        WbA  [        U R                  SU R                  R                   SU< S3[        R                  5         URj                  Rm                  URn                  5      Ul7        [q        5       (       Ga  [s        U SS5      =n
(       a  U
Rt                  nO'U RZ                  (       d  U Rd                  (       a  SnOSnSU R                  Rv                  < 3U R                  Rv                  S:g  =(       a    [s        U
SS5      (       + -  n URj                  Rm                  URx                  5      Ul<         URj                  Rm                  U Rz                  5      U l=        UR}                  5         [        U R                  U R                  USU SU 3U Rz                  URx                  U R                  [        U5      =(       d    SUURj                  R                  5       S9
n[        U5        URj                  R                  SS9 H  nU R                  " S0 UD6  M     0 U lB        g! UR                  nf = f! , (       d  f       GNS= f! [          aK  n UR#                  UR$                  5         SnAGN>! [&         a  nU R)                  Xe5      SeSnAff = fSnAf[*        [,        4 a    e [.        /[1        5       Q7 a    e [3        5        Ga  n[5        U[6        5      (       aF  [9        UR:                  5      S:X  a-  UR:                  S   R<                  =(       d    UR<                  nOUR<                  n[>        R@                  " U5      S   S   n[C        U5      (       aO  [5        U[D        5      (       d:  URG                  S	[H        RJ                   S
[H        RJ                   S35      (       d  e URL                  (       a  [+        URN                  5      Ue[Q        5       n[S        XW5      Ul*        XQl+        URT                  c   e[Y        URT                  5        SU l-        [\        R^                  " U5      n	U(       a  U R                  U	   R                  U5        U	R`                  [b        :X  a!  SU l2        U R                  Rg                  5          URi                  U	5         SnAGNv! [&         a  nU R)                  Xe5      SeSnAff = fSnAff = f! [,         a    0 Ul7         GNf = f! [,         a    0 Ul<         GNf = f! [,         a    SU l=         GNf = f!  URj                  Rm                  URn                  5      Ul7        O! [,         a
    0 Ul7         Of = f[q        5       (       Ga  [s        U SS5      =n
(       a  U
Rt                  nO'U RZ                  (       d  U Rd                  (       a  SnOSnSU R                  Rv                  < 3U R                  Rv                  S:g  =(       a    [s        U
SS5      (       + -  n URj                  Rm                  URx                  5      Ul<        O! [,         a
    0 Ul<         Of = f URj                  Rm                  U Rz                  5      U l=        O! [,         a
    SU l=         Of = fUR}                  5         [        U R                  U R                  USU SU 3U Rz                  URx                  U R                  [        U5      =(       d    SUURj                  R                  5       S9
n[        U5        URj                  R                  SS9 H  nU R                  " S0 UD6  M     0 U lB        f = f)a3  Wrapper around ``execute_once`` that intercepts test failure
exceptions and single-test control exceptions, and turns them into
appropriate method calls to `data` instead.

This allows the engine to assume that any exception other than
``StopTest`` must be a fatal error, and should stop the entire engine.
)should_traceNz/Tests run under @given should return None, but z
 returned z	 instead.r   r   r   internal
conjecturezprovider_conformance.pyTr  r  unknownz, using backend=r   _switch_to_hypothesis_providerFz.<backend failed to realize symbolic arguments>zduring z phase)
r1  r2  r3  r4  r5  r   r6  coveragephasebackend_metadata	test_caselifetimerr   )H	frozensetrZ   r  rD  statusr:   VALIDbranchesr  rI  rH   r   r   r   r   return_valuer0   mark_invalidr   r'   r  r.   r"   r%   rR  rG  r   r3   r   r  __traceback__r  
extract_tbrG   r*   endswithosseprx   r  rF   rE   expected_tracebackr  r`   r  rC   from_exceptionexc_typer#   r  clearmark_interestingr  r  eventsrM   r   _current_phasebackendr  rW  rT  rL   rU  rV  rX  r\   observe_test_caserK   observe_information_messages_deliver_information_message)r   r3  tracetracerr  r  r   tbfilepathinteresting_originr  r!  backend_descrc  r  s                  rt   _execute_once_for_engine5StateForActualGivenExecution._execute_once_for_engine  s    !{^	'T%7%7%9:f	,!..t4Fv||3 ++D155fooF"OOE ; !!MMEyy))**VJiI,,	B!"mm33DKK@ %&&$T9d;;6;"11E++t/J/J ( )!1$--2G2G1JKMM))\9 U#F,LeTT 2/3}}/D/D000D,Y(,(=(=d>O>O(PD% ""33!11$+E7&"G#'#4#4"66006u=E%)]]%D%D%F $B'==EE( F C 55<< %'D!g #OOE ;:$ % 	FF!!!((++ F 33C;EF ./ 	 
')
 	 *, =	J !/00S5F!5K \\!_22Eaoo__ ++B/3A6H"8,,"1&9::
 !))rvvhj8OP  {{ t//0a7
 +,*:1*A'*+'..:::t667'+$%6%E%Ea%H"''(:;??F%..2BB26D/''--/J))*<==" J77?TIJy=	JR ( ! !& , 2/1D,2
 , Y(XD%Y5!"mm33DKK@' ! ! %&&$T9d;;6;"11E++t/J/J ( )!1$--2G2G1JKMM))\9 U#F,LeTT 2/3}}/D/D000D, , 2/1D,2Y(,(=(=d>O>O(PD%+ Y(XD%Y ""33!11$+E7&"G#'#4#4"66006u=E%)]]%D%D%F $B'==EE( F C 55<< %'D!sF  K8 K&A(KK&AK8 '*V 7*V  "*V8 K##K&&
K50K8 8
VL$W $
M.M  MM8V GV UW 
U=&U88U==V  VW VV V54V58WW`*W=<`=X`XB(`:*[%$`%[96`8[99`=*\('`(\<9`;\<<C`r   titlecontentc          
      X    [        [        UU R                  U R                  UUS95        g )N)r   r1  r2  rD  rE  )rK   rI   rU  rV  )r   r   rD  rE  s       rt   r;  9StateForActualGivenExecution._deliver_information_messageX  s/     	//--	
rs   c                 :   Sn U R                   R                  n[        U R                  U R                  U R                  UU R                  S9nX0l        UR                  5         [        UR                  5        [        5       (       au  U R!                  SS[#        UR                  5      S9  [%        UR&                  =n[(        5      (       a  UOU" S5      R+                  SS9 H  nU R                   " S*0 UD6  M     UR,                  S	:X  a  gUR.                  (       a*  [1        UR.                  R3                  5       S
 SS9U l        OUR6                  S	:X  a  / nUR8                  [;        SUR,                  S-  5      :  a+  UR=                  UR8                   SUR,                   S35        UR>                  [;        SUR,                  S-  5      :  a+  UR=                  UR>                   SUR,                   S35        [A        U R
                  5      n[C        SU SSRE                  U5       35      e[G        [H        S5      (       a  [J        (       du  U RM                  5       (       a`  [N        RP                  " 5       (       dF  [R        RT                  " S[V         S[H        RX                  R[                  [V        5       S3[\        SS9  U R4                  (       d  gU R                  R^                  (       a  [`        (       d  U R4                  SS2	 / n[c        URd                  5      n	U	(       a  U	R=                  S5        [g        U Rh                  U R                  5      nU R4                   H  n
/ nURk                  U
Rl                  [o        U
Rl                  5      S9nU
Rp                  Ul8        SnSnU
Rr                  c   eU
Rt                  c   e [w        UR<                  5         U Ry                  USSU
Rr                  U
Rt                  4S9  SSS5        [{        S5      e   [        UU R                  U	UR                  (       a  UR                  (       d  UR                  OSS)9  g! [         a%    [        c  [	        U R
                  5      n GNySn GN~f = f! , (       d  f       N= f! [|         aE  n[        SU
Rr                  =(       d    U/5      nUR=                  [        UU5      5         SnAOSnAf[         a2  n[        S U/5      nUR=                  [        UU5      5         SnAOSnAf[         a  nUR                  XjR                     5        UR                  [        5       5      nUR=                  [        UU5      5        [        U[        U5      5      n[        R                  " U5      n SnAOSnAff = fUR                  5         [        5       (       a  [        U R                  U R                  US!U R                  UR                  U R                  S[H        R                  " 5       S	   (       a  S"OS#[        U=(       d    S$5      S%U0S&9n[        U5        U R                  R                  (       a+  UR=                  S'[        U
Rl                  5       S(35        GMC  GMF  ! UR                  5         [        5       (       a  [        U R                  U R                  US!U R                  UR                  U R                  S[H        R                  " 5       S	   (       a  S"OS#[        U=(       d    S$5      S%U0S&9n[        U5        U R                  R                  (       a)  UR=                  S'[        U
Rl                  5       S(35        f f = f)+zfRun the test function many times, on database input and generated
input, using the Conjecture engine.
TN)r   r  database_keyr  infozHypothesis Statistics)r   rD  rE  test_functionr$  r   c                 ,    [        U R                  5      $ rq   )rA   nodes)ds    rt   ru   9StateForActualGivenExecution.run_engine.<locals>.<lambda>  s    hqww/rs   )rz  reverse   r  z of z examples failed a .filter() or assume() condition. Try making your filters or assumes less strict, or rewrite using strategy parameters: st.integers().filter(lambda x: x > 0) fails less often (that is, never) when rewritten as st.integers(min_value=1).z\ examples were too large to finish generating; try reducing the typical size of your inputs?z!Unable to satisfy assumptions of z. z Also, 
monitoringz/avoiding tracing test function because tool id z is already taken by tool .   
stacklevelr   r   )max_choices)r$  r#  r  zThis should be unreachablezInconsistent results: An example failed on the first run but now succeeds (or fails with another error, or is for some reason not runnable).z\Unreliable assumption: An example which satisfied assumptions on the first run now fails it.zminimal failing examplepassedfailedzunexpected/flaky passr  )r1  r2  r3  r4  r5  r   r6  r   r'  status_reasonmetadataz6
You can reproduce this example by temporarily adding z! as a decorator on your test caseunsound_backendrr   )Yr   !_hypothesis_internal_database_keyr  rj  rP   r   r<   rB  r   r  r  r  r  rd   
statisticsrM   r;  rb   r   r  r@   r:  
call_countr  r=  r   r  valid_examplesinvalid_examplesr  r   overrun_examplesrQ   r/   r  r   r{  r2   r  rZ   	can_tracewarningswarnrX   rR  get_toolr+   rP  rQ  rc   best_observed_targetsr[   r  new_conjecture_datar   r   r  r  r1  ra   rD  NotImplementedErrorr.   r&   r   r0   r   r  r@  rN  rF   rE   rC   r2  rT  rL   rU  rV  rW  r  rX  exc_infor   rK   
print_blobr   _raise_to_user_verified_by_backend_backend_found_failure)r   __tracebackhide__rI  r  r   r  explanationsreperrors_to_reportreport_linesfalsifying_exampler   ran_exampler>  r  r  r   error_with_tbrc  s                      rt   
run_engine'StateForActualGivenExecution.run_enginee  s   
 !	$,,NNL "))]];;%..
  	

))* ""---+F,=,=> .   V__ 46GHHaPTg**O*DE 118C8E
 !&&'-++224/(D$ $$)! **SV5F5F!5K-LL ''!22348I8I7J KW W **SV5F5F!5K-LL ''!22348I8I7J KD D
 6dii@#7uB ~~l346  C&&D""$$$$&& MMA%&&@>>**+=>?qB " ''--449U9U(("-
 '(D(DE#()<)<dmmL"&":":I 44"**<N<V<V8W 5 K *<)J)JK&BF%88DDD%88DDDG"9#3#34%%#&*!%.AA.AA*	 &  5V **FGGo #;h 	MM ..v7T7T ++	
q  	$ (.tyy9#		$` 54  I #B (::?a@ !''	3(GHH( I"AC
 !''	3(GHH  =  .S.S!TU ! 0 01F1H I ''	=(QR%a)>q)AB*99!<= ""$(**&"&"7"7!%!5!5(&?'+'8'8"-"A"A#44!%+.<<>!+<x(&)&*K4K&L"-r!2B (+ ==++$$Q12D2L2LMN O;; ,) ""$(**&"&"7"7!%!5!5(&?'+'8'8"-"A"A#44!%+.<<>!+<x(&)&*K4K&L"-r!2B (+ ==++$$Q12D2L2LMN O;; ,s   Q* R-')RR-Z2*&RRR
R*	&R--
W7;S72Z27W(T1,Z21W>A<V?:Z2?WZ22C(^)r  rU  rW  rX  r  r  r  r  r  r  r  r  r   rt  r   r  r  r   rH  )r   r   r   r   ro  r   r   r   r   r;  intr   r   r2  r   rV  r  rD  r'   r   r&   r  r9   rB  rJ   r;  rx  r   rr   rs   rt   r9  r9    s     26$5$5 sCx $5 	$5
 $5 $5 S$Y$.$5L @ @ @
," M^44)64	4"g'^ g' g'R
*
36
ADt
	
L
rs   r9  errorsc           
         [        [        5      nU  H6  n[        R                  " UR                  5      nX   R                  U5        M8     / nUR                  5        H{  n[        U5      S:X  a  UR                  US   5        M(  S n[        XVS9nUS   n[        U5      S-
  n	[        UR                  SU	 SSU	S:  -   S35        UR                  U5        M}     U$ )	z
Group explicit example errors by their InterestingOrigin, keeping only the
simplest one, and adding a note of how many other examples failed with the same
error.
r   r   c                 `    U R                   (       a  U R                   S   OSn[        U5      U4$ )Nr   r   )r   r   )r   repr_strs     rt   shortlex_key/_simplify_explicit_errors.<locals>.shortlex_keyE  s'    165??1-bHx00rs   ry  z(note: z other explicit exampler  z< also failed with this error; use Verbosity.verbose to view))
r   r   rC   r2  r   r   r   r   r=  r4   )
r{  	by_originr   r  r  groupr  sorted_groupsimplestother_counts
             rt   _simplify_explicit_errorsr  4  s     ALD@QI"11%//B  '  F!!#u:?MM%(#1 "%:L#AHe*q.K""+&=c[ST_>U=V WN N
 MM(## $& Mrs   r\  c                   Sn/ nU  Hd  nUR                    HQ  n[        UR                  U5        UR                  U5      (       d  M1  UR	                  UR                  U5      5        MS     Mf     [        R                  (       a  U[        R                  l        [        U 5      S:X  a  U S   R                  n	O?U (       d   e[        S[        U 5       SU S3U  Vs/ s H  owR                  PM     sn5      n	UR                  [        R                  :  a  U H  n
[        X5        M     U(       a  [        U	SU< S35        U	es  snf )	zAHelper function for attaching notes and grouping multiple errors.zFalsifying example: r   r   zHypothesis found z distinct failuresrS  zbackend=zD claimed to verify this test passes - please send them a bug report!)r   r4   r   rS  r   r   rD   r  _hypothesis_failing_examplesr   r3   	verbosityr   normal)rs  r   target_linestrailerr]  failing_prefixlsr   notethe_error_hypothesis_foundlines              rt   rm  rm  V  s0    ,N	B!OODU__d+~..		$++N;< $ "
   AC!!>
!%5a%8%B%B"%7$4 566H	QRS*:;*:__*:;&
"
 Y--- D/6 ! &) *- -	
 %$ <s   E
c              +   H   #    [         R                  " S[        SS9  Sv   g7f)a  Monkeypatch for `unittest.TestCase.subTest` during `@given`.

If we don't patch this out, each failing example is reported as a
separate failing test by the unittest test runner, which is
obviously incorrect. We therefore replace it for the duration with
this version.
zsubTest per-example reporting interacts badly with Hypothesis trying hundreds of examples, so we disable it for the duration of any test that uses `@given`.   rU  N)re  rf  r+   )r   r  __s      rt   fake_subTestr  {  s%      MM	' 	 
s    "c                   t    \ rS rSr% Sr\\S'   \\S'   \\S'   \S\\	\
-  \-  \-  /\	S-  4   4S j5       rS	rg)
r   i  a  This object is provided as the .hypothesis attribute on @given tests.

Downstream users can reassign its attributes to insert custom logic into
the execution of each case, for example by converting an async into a
sync function.

This must be an attribute of an attribute, because reassignment of a
first-level attribute would not be visible to Hypothesis if the function
had been decorated before the assignment.

See https://github.com/HypothesisWorks/hypothesis/issues/1257 for more
information.
r   r   r   r   Nc                 ~     U R                   $ ! [         a$    U R                  5       U l         U R                   s $ f = f)a_  
Run the test as a fuzz target, driven with the ``buffer`` of bytes.

Depending on the passed ``buffer`` one of three things will happen:

* If the bytestring was invalid, for example because it was too short or was
  filtered out by |assume| or |.filter|, |fuzz_one_input| returns ``None``.
* If the bytestring was valid and the test passed, |fuzz_one_input| returns
  a canonicalised and pruned bytestring which will replay that test case.
  This is provided as an option to improve the performance of mutating
  fuzzers, but can safely be ignored.
* If the test *failed*, i.e. raised an exception, |fuzz_one_input| will
  add the pruned buffer to :ref:`the Hypothesis example database <database>`
  and then re-raise that exception.  All you need to do to reproduce,
  minimize, and de-duplicate all the failures found via fuzzing is run
  your test suite!

To reduce the performance impact of database writes, |fuzz_one_input| only
records failing inputs which would be valid shrinks for a known failure -
meaning writes are somewhere between constant and log(N) rather than linear
in runtime.  However, this tracking only works within a persistent fuzzing
process; for forkserver fuzzers we recommend ``database=None`` for the main
run, and then replaying with a database enabled if you need to analyse
failures.

Note that the interpretation of both input and output bytestrings is
specific to the exact version of Hypothesis you are using and the strategies
given to the test, just like the :ref:`database <database>` and
|@reproduce_failure|.

Interaction with |@settings|
----------------------------

|fuzz_one_input| uses just enough of Hypothesis' internals to drive your
test function with a bytestring, and most settings therefore have no effect
in this mode.  We recommend running your tests the usual way before fuzzing
to get the benefits of health checks, as well as afterwards to replay,
shrink, deduplicate, and report whatever errors were discovered.

* |settings.database| *is* used by |fuzz_one_input| - adding failures to
  the database to be replayed when
  you next run your tests is our preferred reporting mechanism and response
  to `the 'fuzzer taming' problem <https://blog.regehr.org/archives/925>`__.
* |settings.verbosity| and |settings.stateful_step_count| work as usual.
* The |~settings.deadline|, |~settings.derandomize|, |~settings.max_examples|,
  |~settings.phases|, |~settings.print_blob|, |~settings.report_multiple_bugs|,
  and |~settings.suppress_health_check| settings do not affect |fuzz_one_input|.

Example Usage
-------------

.. code-block:: python

    @given(st.text())
    def test_foo(s): ...

    # This is a traditional fuzz target - call it with a bytestring,
    # or a binary IO object, and it runs the test once.
    fuzz_target = test_foo.hypothesis.fuzz_one_input

    # For example:
    fuzz_target(b"\x00\x00\x00\x00\x00\x00\x00\x00")
    fuzz_target(io.BytesIO(b"\x01"))

.. tip::

    If you expect to discover many failures while using |fuzz_one_input|,
    consider wrapping your database with |BackgroundWriteDatabase|, for
    low-overhead writes of failures.

.. tip::

    | Want an integrated workflow for your team's local tests, CI, and continuous fuzzing?
    | Use `HypoFuzz <https://hypofuzz.com/>`__ to fuzz your whole test suite, and find more bugs with the same tests!

.. seealso::

    See also the :doc:`/how-to/external-fuzzers` how-to.
) _HypothesisHandle__cached_targetr  r   r  s    rt   fuzz_one_inputHypothesisHandle.fuzz_one_input  s@    n	(''' 	(#'#8#8#:D '''	(s    +<<)__cached_target)r   r   r   r   r   r   r   r2  r   bytes	bytearray
memoryviewr   r  r   rr   rs   rt   r   r     sW     OZ(	59$z1H<=ut|K	LZ( Z(rs   r   r  c                    g rq   rr   )r  s    rt   givenr          rs   _given_arguments).Nc                      g rq   rr   )r  s    rt   r  r  	  r  rs   r   c                      g rq   rr   )r   s    rt   r  r    r  rs   c                  |   ^ ^ [        5       (       a#  [        [        5       S[        R                  5        U U4S jnU$ )a~
  
The |@given| decorator turns a function into a Hypothesis test. This is the
main entry point to Hypothesis.

.. seealso::

    See also the :doc:`/tutorial/introduction` tutorial, which introduces
    defining Hypothesis tests with |@given|.

.. _given-arguments:

Arguments to ``@given``
-----------------------

Arguments to |@given| may be either positional or keyword arguments:

.. code-block:: python

    @given(st.integers(), st.floats())
    def test_one(x, y):
        pass

    @given(x=st.integers(), y=st.floats())
    def test_two(x, y):
        pass

If using keyword arguments, the arguments may appear in any order, as with
standard Python functions:

.. code-block:: python

    # different order, but still equivalent to before
    @given(y=st.floats(), x=st.integers())
    def test(x, y):
        assert isinstance(x, int)
        assert isinstance(y, float)

If |@given| is provided fewer positional arguments than the decorated test,
the test arguments are filled in on the right side, leaving the leftmost
positional arguments unfilled:

.. code-block:: python

    @given(st.integers(), st.floats())
    def test(manual_string, y, z):
        assert manual_string == "x"
        assert isinstance(y, int)
        assert isinstance(z, float)

    # `test` is now a callable which takes one argument `manual_string`

    test("x")
    # or equivalently:
    test(manual_string="x")

The reason for this "from the right" behavior is to support using |@given|
with instance methods, by automatically passing through ``self``:

.. code-block:: python

    class MyTest(TestCase):
        @given(st.integers())
        def test(self, x):
            assert isinstance(self, MyTest)
            assert isinstance(x, int)

If (and only if) using keyword arguments, |@given| may be combined with
``**kwargs`` or ``*args``:

.. code-block:: python

    @given(x=integers(), y=integers())
    def test(x, **kwargs):
        assert "y" in kwargs

    @given(x=integers(), y=integers())
    def test(x, *args, **kwargs):
        assert args == ()
        assert "x" not in kwargs
        assert "y" in kwargs

It is an error to:

* Mix positional and keyword arguments to |@given|.
* Use |@given| with a function that has a default value for an argument.
* Use |@given| with positional arguments with a function that uses ``*args``,
  ``**kwargs``, or keyword-only arguments.

The function returned by given has all the same arguments as the original
test, minus those that are filled in by |@given|. See the :ref:`notes on
framework compatibility <framework-compatibility>` for how this interacts
with features of other testing libraries, such as :pypi:`pytest` fixtures.
a  Nesting @given tests results in quadratic generation and shrinking behavior, and can usually be more cleanly expressed by replacing the inner function with an st.data() parameter on the outer @given.

If it is difficult or impossible to refactor this test to remove the nested @given, you can disable this health check with @settings(suppress_health_check=[HealthCheck.nested_given]) on the outer @given. See https://hypothesis.readthedocs.io/en/latest/reference/api.html#hypothesis.HealthCheck for details.c                 <  >^
^^^^^^ [         R                  " U 5      (       a  [        S5      eS[        R                  ;   a  S[        R                  ;   a  [        [        [        [        R                  S   R                  R                  S5      S S 5      5      S:  a7  [        U [        R                  S   R                  5      (       a  [        S5      e[        T5      n[        T5      m
[        U 5      mU[        4:X  ak  T
(       dd  TR                  R!                  5        Vs0 s H<  nUR"                  UR$                  UR&                  4;   d  M+  UR(                  [        _M>     snm
Sn[+        U TUT
5      nUb  U$ U(       a  T
(       a   eTR                  R!                  5        Vs/ s H*  nUR"                  UR$                  L d  M  UR(                  PM,     nn[        [-        [/        US S S	2   US S S	2   S
S95      S S S	2   5      m
A[1        TT
5      mST
R!                  5       ;   a  [3        U 5      nT
R5                  5        VVs/ s H  u  pgUSL d  M  UPM     snn HE  nUW;  a!  [7        SU SU R8                   SU S3U T
S9s  $ [:        R<                  " XV   5      T
U'   MG     [?        S S9m0 m[A        5       m[C        U 5      [E        U R8                  U RF                  T5      U
UUUUUU4S j5       5       mS[H        [J        [L        -  [N        -  [P        -  /[J        S -  4   4U
UUU4S jjn[S        U 5       HD  n	U	RU                  S5      (       a  M  [W        TU	5      (       a  M.  [Y        TU	[[        X	5      5        MF     STl.        [W        U S5      (       a  STl/        [[        U SS 5      Tl0        [[        U SS 5      =(       d    [b        Rd                  Tl3        [[        U SS 5      Tl4        [k        XT
5      Tl6        T$ s  snf s  snf s  snnf )Nz#@given cannot be applied to a class_pytestz_pytest.fixturesrS  r  )   r  z,@given cannot be applied to a pytest fixturerr   r   Fr  .zpassed z	=... for z, but z has no type annotationr   c                      [         $ rq   ri   rr   rs   rt   ru   2given.<locals>.run_test_as_given.<locals>.<lambda>  s    Wrs   )	prev_selfc            	        > SnT   T H  nSTU'   M
     [         R                  " 5       n[        T5      S:  nUTU'   S S S 5         T R                  R                  n[        USS5      (       a  [        SUR                   S35      eT R                  n[        UT 5      n[        T U UTTR                  5      u  pn	[        R                  " U5      (       a5  [        U	R                  5      [         L a  [        SUR                   S35      eU	R                  n
[#        U	R                  [$        5      (       aF  UR                  ['        [$        5      ;   a)  [)        US	UR                   S
3[*        R,                  5        [/        U
5      (       a"  [        S[1        U
5      R2                   S35      e[        [1        U	R                  5      UR                  S 5      T L a  U	R                  OS nTR4                  [6        L a  UTl        O8UTR4                  La)  [)        USUR2                   S3[*        R8                  5        [;        U	UUUT TS9nT R<                  =n b_  Uu  pU[>        :w  a  [        SU S[>        < S35      e URA                  [B        RD                  " [G        U5      5      SSS9  [I        S5      e[O        [Q        UT XT5      5      =n(       a  [        U5      S:X  d  URR                  RT                  (       d   e[#        US   RV                  [Y        5       5      (       a  US S2	 URR                  RZ                  [\        R^                  :  a  [a        U5      n[c        UURR                  / S5        [d        Rf                  URR                  Rh                  ;   =(       a    [        T SS5      n[j        Rl                  " S5      n[d        Rn                  URh                  ;   d7  [d        Rp                  URh                  ;   d  U(       d  Ue T   TW	 S S S 5        g  [#        U
[$        5      (       aV  [s        U
S5      (       aE  U
Rt                  n [v        Rx                  " [z        U
5      U
l:        UR}                  5         UU
l:        OUR}                  5          U(       d  UR                  (       d  UeT   TW	 S S S 5        g ! , (       d  f       GN= f! [J         a    [I        S5      S e[L         a    [I        S5      S ef = f! , (       d  f       g = f! UU
l:        f = f! [~         a  nT R                  nUR                  c   eUR                  R                  R                  S5      S:H  n[        U5         UbO  UR                  (       a  U(       a7  [        (       a  S U 3OS!nU(       a
  S"U S#U S$3nO	S%U S#U S$3n[        U5        UR                  [#        U[        5      (       a  S 5      nUe[        5       5      nUe! , (       d  f        S nAGN}= fS nAff = f! , (       d  f       g = f! T   TW	 S S S 5        f ! , (       d  f       f = f= f)&NTr   r   Fz$You have applied @given to the test a   more than once, which wraps the test several times and is extremely slow. A similar effect can be gained by combining the arguments of the two calls to given. For example, instead of @given(booleans()) @given(integers()), you could write @given(booleans(), integers())z=Hypothesis doesn't know how to run async test functions like z.  You'll need to write a custom executor, or use a library like pytest-asyncio or pytest-trio which can handle the translation for you.
    See https://hypothesis.readthedocs.io/en/latest/details.html#custom-function-executionz&You have applied @given to the method z_, which is used by the unittest runner but is not itself a test. This is not useful in any way.z'You have applied @given to a method on z, but this class does not inherit from the supported versions in `hypothesis.extra.django`.  Use the Hypothesis variants to ensure that each example is run in a separate database transaction.zThe method aU   was called from multiple different executors. This may lead to flaky tests and nonreproducible errors when replaying from database.

Unlike most health checks, HealthCheck.differing_executors warns about a correctness issue with your test. We therefore recommend fixing the underlying issue, rather than suppressing this health check. However, if you are confident this health check can be safely disabled, you can do so with @settings(suppress_health_check=[HealthCheck.differing_executors]). See https://hypothesis.readthedocs.io/en/latest/reference/api.html#hypothesis.HealthCheck for details.r  z_Attempting to reproduce a failure from a different version of Hypothesis. This failure is from z , but you are currently running z:. Please change your Hypothesis version to a matching one.)r$  r#  zCExpected the test to raise an error, but it completed successfully.zThe shape of the test data has changed in some way from where this blob was defined. Are you sure you're running the same test?zkThe test data failed to satisfy an assumption in the test. Have you added it since this blob was generated?r   r   z in explicit examplesr   rr   z:Hypothesis has been told to run no examples for this test.subTestzstopped-becausezshrinking was very slowz., or by running pytest with --hypothesis-seed=r   z
This test function exited early because it took too long to shrink. If desired for debugging, you can reproduce this by adding @seed(z) to this testrS  z/You can reproduce this failure by adding @seed()Lr  r  r   r   r   r   r,   r   r   rm  ru  r   inspectiscoroutinefunctionr  rp  r  r   r   dirrH   r   not_a_test_methodr5   r   r   r  rj   differing_executorsr9  r   rm   rD  r9   rC  r   r$   r.   r0   r   re  r   rP  r   rR  r  r   r  r  rm  r   rA  rB  rw  r}  reusegenerater   r  types
MethodTyper  rx  r   rh  r  r_  rr  r   r  running_under_pytestr_   rN  r3   rF   r  )!r   r}   rp  overlap_thread_idthreadidhas_existing_threadsr   r   r  rt  r  cur_selfrY  r   expected_versionfailurer{  ran_explicit_examplesSKIP_BECAUSE_NO_EXAMPLESr  r  generated_seedstopped_because_slow_shrinkingpytest_extra_msgr  r  r   new_signaturer	  thread_localr  thread_overlap_lockr   s!                             rt   r   6given.<locals>.run_test_as_given.<locals>.wrapped_test  sx    !%$)7%8<N#45 *8 %..0 (+>':Q'>$+?x( %q1#..994!5u==)>t}}o N9 9  (II4T<H+E  !,,,(	5 //55$U[[15EE *W==/ *ZZ  ekk844#h-9W% @ P9 9 $55 'v..)A<445 600  tEKK0$--F,V KK 
  ))W4-5L*\%;%;;% %d&7&7%8 9' ' $77!& 5 #1 *6)`)``% 1B-$';6-KK[J\ ]99D HDD $***66~g7NO*.%) + 
 .6 $ "-|Y 6  v;!+u~~/R/RRR
 "&*"6"68R8TUU"3B3K~~//)2C2CC ";6!B"65>>2?VW NNenn&;&;; R.LbQ & ,4+<+<P,( KK8??2enn6W066H )&x0 )(E=9!&(33	8R8R"(..5-2-=-=lF-SFN!,,.-4FN((*l .1D1D22(&x0 )(u %$D $ $-<  $	$
 1 $-U  $$$d )(w .5FN % 39
 %LL # !==44400445FG45 3 (1)5 % 5 59W $8#7%99G8H%J &( -  >%NN\M] ^33C2DA%G !$%--;,<N'7&8%; !$
 #3K 675E5E)!-?@@ !62
 98 "7!862
 98O 21139p )((&x0 )((s   7SH9X5  9S 9EX5 T 2T# 0T T# 
X5 T# X5 8X$
S,TX5 
T	T  T# #
X!-AX;BX
X	XX5 XX!!X5 $
X25Y8Y<	Y
YYr   c            	        >^^^^	 TR                   R                  n [        TR                  S S9m[	        U T5      n[        TS0 T
TR                  5      u  p#nU(       a   eU(       a   e[        UU TUTTS9m	[        U 5      S-   m0 mS[        [        -  [        -  [        -  S[        S -  4UUUU	4S jjn[        R                  R                  Ul        U$ )N)parentr  rr   r  s
   .secondarybufferr   c                   > [        U [        R                  5      (       a  U R                  [        5      n [        U [
        [        [        45      (       d   e[        S [        SU 0S9n TR                  U5        [        R                  n [        5       (       a~  UR!                  5         [#        TR$                  TR&                  USTR(                  UR*                  TR,                  S UUR.                  R1                  5       S9
n[3        U5        0 Tl        [        UR.                  [        5      (       d   e[        UR.                  RL                  5      $ ! [         a    UR                  n [        5       (       a  UR!                  5         [#        TR$                  TR&                  USTR(                  UR*                  TR,                  S UUR.                  R1                  5       S9
n[3        U5        0 Tl        g g [4         a    [        R6                  n [        5       (       a  UR!                  5         [#        TR$                  TR&                  USTR(                  UR*                  TR,                  S UUR.                  R1                  5       S9
n[3        U5        0 Tl        g g [8         a    TR;                  UR<                  5      nTR>                  bm  Ub"  [A        URB                  5      [A        U5      ::  aH  TR>                  RE                  T[G        URH                  5      5        URB                  TUR<                  '   [        RJ                  ne f = f! [        5       (       a  UR!                  5         [#        TR$                  TR&                  USTR(                  UR*                  TR,                  S WUR.                  R1                  5       S9
n[3        U5        0 Tl        f f = f)N
bytestring)r  r  provider_kwr  )
r1  r2  r3  r4  r5  r   r6  r   r'  r"  )'r   ioIOBasereadr;   r  r  r  r9   r?   rD  r:   r(  r.   r'  rM   rT  rL   rU  rV  rW  r  rX  r  r9  rK   r0   rM  r   rr  r@  r   rA   rM  saver!   r   INTERESTINGdrawn)	r  r3  r'  rc  knownrI  minimal_failuresr   rY  s	        rt   r  Rgiven.<locals>.run_test_as_given.<locals>._get_fuzz_target.<locals>.fuzz_one_input	  sV   
 fbii00#[[5F!&5)Z*HIIII%/!-v 6
$4&&t,#\\F& -..*&+&<&<%*%:%:!%*:+0+=+=&*&>&>#(#9#9%)#)-1]]-L-L-N ,B/13.!$--1CDDDDT]]0011I    ![[F  -..*&+&<&<%*%:%:!%*:+0+=+=&*&>&>#(#9#9%)#)-1]]-L-L-N ,B/13. / -  #^^F -..*&+&<&<%*%:%:!%*:+0+=+=&*&>&>#(#9#9%)#)-1]]-L-L-N ,B/13. / % 
,001H1HIE((4$**)=%)P ))..(*:4<<*H EIJJ()@)@A#//F
 -..*&+&<&<%*%:%:!%*:+0+=+=&*&>&>#(#9#9%)#)-1]]-L-L-N ,B/13. /s2   *!E M/M ?MM (B0MM BO+)r   r   r   r   rm  ru  r   r9  rP   r  r  r  r   r   r  r   )r   r  _args_kwargsrt  r  rI  r  r   rY  r   r  r  r   s         @@@@rt   r   :given.<locals>.run_test_as_given.<locals>._get_fuzz_target  s      **55D#EEPTH 1|DF$>b"lM4L4L%!EE 9;0-E +40=@L
 &(42	)J6A4242 42l &6%D%D%L%LN"!!rs   r  T%_hypothesis_internal_settings_appliedr   r   r   )7r  isclassr,   r{  r|  r   maprz  rm   r  r   FixtureFunctionDefinitionr;  rR   Ellipsisr   r   r   r  r  r  r  r   r<  r  r6   r  r   r   st	from_typerk   r   rS   rO   r   r   r  r  r  r   r  rS  r   setattrr   r   r  r   r   r~   r   r   r   r   )r   r
  r   check_invalidrZ  hintsr  r  r   attribr   r  r	  r  r  r  r   r  r   s             @@@@@@@rt   run_test_as_given given.<locals>.run_test_as_given  s   ??4   ""GHH $"ckk1c#s{{95AAGGLRaPQR ckk"45OO  ""PQQ 01M*$T*xk), &007799A66a55q~~FF ! 9L
 !O',
 $   ### &007799A66Q444 9  
  S2"(=eLMdPRdSL +L,G ,%%''"4(E-9-?-?-AR-AkdUc\T-ARD5 dV9T]]O6$ H) )!-	  "$ek!:L S #_=
 +-"f	T		"4==$,,	N~	1 ~	1 
O 
~	1@\	"ei'*4x?@%$,NO\	" \	"B $iF%%c**glF.K.Kfgd.CD   +/'4@AAAEL>5<146
2 D=tDXHXHX 	6 CJ>C
? #34<"XY(  Ss$   '*PP.PPPP)r   rH   r   r   nested_given)r  r   r  s   `` rt   r  r    s;    D !""J	 $$	
EN rs   )r   r  rI  	specifierr   r   r  rI  c                  ^^ Uc	  [        SS9n[        U[        [        5      SS9nUc  UR                  b  [	        T5      n[        U [        5      (       d%  [        SU < S[        U 5      R                   35      eU R                  5         / mU[        U 5      UU4S j5       5       nUb   [        UR                  S5      5      " U5      nXEl         U" 5         [!        [#        T5      5      e! [         a    TS	   s $ f = f)
ztReturns the minimal example from the given strategy ``specifier`` that
matches the predicate function ``condition``.i  )max_examplesF)suppress_health_checkrP  z Expected SearchStrategy but got z	 of type c                 8   > T" U 5      (       a  U /TS S & [         eg rq   )r(   )r+  r   lasts    rt   r   find.<locals>.testv	  s#     Q<<cDGK rs   @   r   )r   r   r   r   rP   r   rg   r,   r   r   rs  r  r   rl  r^  r(   r-   rQ   )r  r   r   r  rI  r   r  s    `    @rt   findr  W	  s    .[(9PUH  1 1 = 'y1i00.ym <O,,-/
 	
 D
9  
 F&&r*+D1-9* 7	B
CC  Aws   C- -C?>C?)r   rq   )r   r   rJ  r   r  r  r  r  r/  r{  r  r  r  r  rw  re  r   collectionsr   collections.abcr   r   r   r   r   r	   r
   r   	functoolsr   r   r  r   r   r   typingr   r   r   r   r   r   r   r  hypothesis._settingsr   r   r   r   r   r   r   hypothesis.controlr   r   hypothesis.databaser    r!   hypothesis.errorsr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   hypothesis.internalr1   hypothesis.internal.compatr2   r3   r4   r5   r6   r7   %hypothesis.internal.conjecture.choicer8   #hypothesis.internal.conjecture.datar9   r:   %hypothesis.internal.conjecture.enginer;   r<   )hypothesis.internal.conjecture.junkdrawerr=   r>   (hypothesis.internal.conjecture.providersr?   r@   'hypothesis.internal.conjecture.shrinkerrA   hypothesis.internal.entropyrB   hypothesis.internal.escalationrC   rD   rE   rF   rG   hypothesis.internal.healthcheckrH   !hypothesis.internal.observabilityrI   rJ   rK   rL   rM   hypothesis.internal.reflectionrN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   hypothesis.internal.scrutineerrX   rY   rZ   r[   r\   hypothesis.internal.validationr]   hypothesis.reportingr^   r_   r`   ra   hypothesis.statisticsrb   rc   rd   $hypothesis.strategies._internal.miscre   *hypothesis.strategies._internal.strategiesrf   rg   rh   hypothesis.utils.conventionsrj   hypothesis.utils.threadingrk   hypothesis.vendor.prettyrl   hypothesis.versionrm   rn   r  rQ  rj  rk  rz   r   r   r   r   r  r   r   r   r   r   r  re  rm  ro  objectr;  r   ru  rR  r   r   rG  r  r  r  r  r   r  contextmanagerr  r9  r  rm  r  r   r  r   r  rr   rs   rt   <module>r     s   M      	  	 
        # X X (        '  G D    " .  : F O = :  >     6  Y X 8 
 1 2 : *:X.  #  
 LA e$& & %& d#  $\ \~'x 'HhZ%9: 'Zs % HhZ=Q4R >OHW$5 O# O"HW- "% " 8G#4 8 - >
Bj&Z( e$  %!$!$!$ f!$ sN*+	!$
 i !$ 8FT#v+.56!$H.(U4+>+C%D  6 C}%/2 tAw  .N9-=#> .N .Nb\

 \

~d?&; _@U F 79"%MQ"%J 
 
$ u%n( n( &n(b 
c9S#t^,t3345xD7II 
 
%c*c9S#t^,t3345x	7JJ 
 
#C(<7c9S#t^,t3345x	7JJ 
y%c*\9y#C(<7y xYsC~6==>?)ATTUy@ !% !%0Db!0Dt$0D o	0D
 TM0D $,0D 0Drs   