+
    4O|jðM  ã                  óâ  € R t ^ RIHt ^ RIt^ RIHtHtHtHtH	t	H
t
Ht ^ RIHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHtHt ^ R	IHt ^ R
IHt ^ RIHtH t H!t!H"t"H#t# ^ RI$H%t% ^ RI&H't'H(t(H)t) Rt*]+! . RO4      t,]'       d   ^ RI-H.t. ^ RI/H0t0 ^ RI1H2t2 ^ RI3H4t4 ^ RI5H6t6 R R lt7 ! R R]](,          4      t8 ! R R]8](,          4      t9 ! R R]8](,          4      t: ! R R]:](,          4      t;R# )zAWatch changes on a collection, a database, or the entire cluster.)ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚGenericÚMappingÚOptionalÚTypeÚUnion)ÚCodecOptionsÚ_bson_to_dict)ÚRawBSONDocument)Ú	Timestamp)Ú_csotÚcommon)Ú_AggregationCommandÚ_CollectionAggregationCommandÚ_DatabaseAggregationCommand)ÚAsyncCommandCursor)Úvalidate_collation_or_none)ÚConnectionFailureÚCursorNotFoundÚInvalidOperationÚOperationFailureÚPyMongoError)Ú_Op)Ú_CollationInÚ_DocumentTypeÚ	_PipelineF)ÚAsyncClientSession)ÚAsyncCollection)ÚAsyncDatabase)ÚAsyncMongoClient)ÚAsyncConnectionc               ó    € V ^8„  d   QhRRRR/# )é   Úexcr   ÚreturnÚbool© )Úformats   "Ú[C:\Users\alokc\chatbot\backend\venv\Lib\site-packages\pymongo/asynchronous/change_stream.pyÚ__annotate__r+   M   s   € ÷ 
ñ 
�Lð 
 Tñ 
ó    c                óB  € \        V \        \        34      '       d   R# \        V \        4      '       dk   V P                  f   R# V P                  ^	8¬  ;'       d    V P                  R4      ;'       g+    V P                  ^	8  ;'       d    V P                  \        9   # R# )z5Return True if given a resumable change stream error.TFÚResumableChangeStreamError)Ú
isinstancer   r   r   Ú_max_wire_versionÚhas_error_labelÚcodeÚ_RESUMABLE_GETMORE_ERRORS)r%   s   &r*   Ú
_resumabler4   M   sŽ   € ä�#Ô)¬>Ð:×;Ò;ÙÜ�#Ô'×(Ò(Ø× Ñ Ò(Ùà×!Ñ! QÑ&×\Ð\¨3×+>Ñ+>Ð?[Ó+\÷Sð Sà×#Ñ# aÑ'×QÐQ¨C¯H©HÔ8QÑ,Qð	Sñ r,   c                  ój  € ] tR t^ZtRtR*R R lltR R lt]R R l4       t]R	 R
 l4       t	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R lt]R R l4       t]P*                  R R  l4       t]t]R! R" l4       t]P*                  R# R$ l4       tR% R& ltR' R( ltR)tR# )+ÚAsyncChangeStreamaÅ  The internal abstract base class for change stream cursors.

Should not be called directly by application developers. Use
:meth:`pymongo.asynchronous.collection.AsyncCollection.watch`,
:meth:`pymongo.asynchronous.database.AsyncDatabase.watch`, or
:meth:`pymongo.asynchronous.mongo_client.AsyncMongoClient.watch` instead.

.. versionadded:: 3.6
.. seealso:: The MongoDB documentation on `changeStreams <https://mongodb.com/docs/manual/changeStreams/>`_.
Nc               óP   € V ^8„  d   QhRRRRRRRRR	R
RR
RRRRRRRRRRRRRRRR/# )r$   ÚtargetzdUnion[AsyncMongoClient[_DocumentType], AsyncDatabase[_DocumentType], AsyncCollection[_DocumentType]]ÚpipelinezOptional[_Pipeline]Úfull_documentzOptional[str]Úresume_afterúOptional[Mapping[str, Any]]Úmax_await_time_mszOptional[int]Ú
batch_sizeÚ	collationzOptional[_CollationIn]Ústart_at_operation_timezOptional[Timestamp]ÚsessionúOptional[AsyncClientSession]Ústart_afterÚcommentzOptional[Any]Úfull_document_before_changeÚshow_expanded_eventszOptional[bool]r&   ÚNoner(   )r)   s   "r*   r+   ÚAsyncChangeStream.__annotate__f   s˜   € ÷ 5:ñ 5:ð
ð5:ð &ð5:ð %ð5:ð 2ð5:ð )ð5:ð "ð5:ð *ð5:ð "5ð5:ð .ð5:ð 1ð5:ð  ð!5:ð" &3ð#5:ð$ -ð%5:ð& 
ñ'5:r,   c                	ó  € Vf   . p\         P                  ! RV4      p\         P                  ! RV4       \        V4       \         P                  ! RV4       RV n        VP                  V n        VP                  P                  P                  '       d>   RV n        VP                  VP                  P                  \        R7      R7      V n        MWn        \        P                  ! V4      V n        W0n        WÀn        V
R JV n        VR JV n        \        P                  ! T
;'       g    T4      V n        WPn        W`n        Wpn        W€n        W�n        W°n        RV n        V P                  P8                  V n        WÐn        R # )Nr9   r:   Ú	batchSizeFT)Údocument_class)Úcodec_options)r   Úvalidate_listÚvalidate_string_or_noner   Ú%validate_non_negative_integer_or_noneÚ_decode_customrL   Ú_orig_codec_optionsÚtype_registryÚ_decoder_mapÚwith_optionsr   Ú_targetÚcopyÚdeepcopyÚ	_pipelineÚ_full_documentÚ_full_document_before_changeÚ_uses_start_afterÚ_uses_resume_afterÚ_resume_tokenÚ_max_await_time_msÚ_batch_sizeÚ
_collationÚ_start_at_operation_timeÚ_sessionÚ_commentÚ_closedÚ_timeoutÚ_show_expanded_events)Úselfr8   r9   r:   r;   r=   r>   r?   r@   rA   rC   rD   rE   rF   s   &&&&&&&&&&&&&&r*   Ú__init__ÚAsyncChangeStream.__init__f   sD  € ð( ÒØˆHÜ×'Ò'¨
°HÓ=ˆÜ×&Ò& ¸ÔFÜ" 9Ô-Ü×4Ò4°[À*ÔMà#ˆÔØ@F×@TÑ@TˆÔ Ø×Ñ×-Ñ-×:×:Ð:Ø"&ˆDÔð "×.Ñ.Ø$×2Ñ2×?Ñ?ÌÐ?Ó_ð /ó ˆD�Lð "ŒLäŸš xÓ0ˆŒØ+ÔØ,GÔ)Ø!,°DÐ!8ˆÔØ".°dÐ":ˆÔÜ!Ÿ]š]¨;×+FÐ+F¸,ÓGˆÔØ"3ÔØ%ÔØ#ŒØ(?Ô%ØŒØŒØˆŒØŸ™×-Ñ-ˆŒØ%9Ö"r,   c               ó   € V ^8„  d   QhRR/# ©r$   r&   rG   r(   )r)   s   "r*   r+   rH   �   s   € ÷ 3ñ 3¨$ñ 3r,   c              ƒ  	óL   "  € V P                  4       G R j  x€L
 V n        R #  L5i©N)Ú_create_cursorÚ_cursor©rg   s   &r*   Ú_initialize_cursorÚ$AsyncChangeStream._initialize_cursor�   s   é € à!×0Ñ0Ó2×2ˆŽÑ2ùs   ‚$–"—$c               ó   € V ^8„  d   QhRR/# )r$   r&   zType[_AggregationCommand]r(   )r)   s   "r*   r+   rH   ¢   s   € ÷ "ñ "Ð,Eñ "r,   c                ó   € \         h)z)The aggregation command class to be used.©ÚNotImplementedErrorrp   s   &r*   Ú_aggregation_command_classÚ,AsyncChangeStream._aggregation_command_class¡   s
   € ô "Ð!r,   c               ó   € V ^8„  d   QhRR/# )r$   r&   r!   r(   )r)   s   "r*   r+   rH   §   s   € ÷ "ñ "Ð)ñ "r,   c                ó   € \         h)zZThe client against which the aggregation commands for
this AsyncChangeStream will be run.
ru   rp   s   &r*   Ú_clientÚAsyncChangeStream._client¦   s
   € ô
 "Ð!r,   c               ó   € V ^8„  d   QhRR/# ©r$   r&   zdict[str, Any]r(   )r)   s   "r*   r+   rH   ­   s   € ÷ ñ ¨ñ r,   c                óR  € / pV P                   e   V P                   VR&   V P                  e   V P                  VR&   V P                  pVe   V P                  '       d   W!R&   M"W!R&   MV P                  e   V P                  VR&   V P
                  '       d   V P
                  VR&   V# )z=Return the options dict for the $changeStream pipeline stage.ÚfullDocumentÚfullDocumentBeforeChangeÚ
startAfterÚresumeAfterÚstartAtOperationTimeÚshowExpandedEvents)rY   rZ   Úresume_tokenr[   ra   rf   )rg   Úoptionsr†   s   &  r*   Ú_change_stream_optionsÚ(AsyncChangeStream._change_stream_options­   s¬   € à"$ˆØ×ÑÒ*Ø&*×&9Ñ&9ˆG�NÑ#à×,Ñ,Ò8Ø26×2SÑ2SˆGÐ.Ñ/à×(Ñ(ˆØÒ#Ø×%×%Ð%Ø(4˜Ò%à)5˜Ò&à×*Ñ*Ò6Ø.2×.KÑ.KˆGÐ*Ñ+à×%×%Ð%Ø,0×,FÑ,FˆGÐ(Ñ)àˆr,   c               ó   € V ^8„  d   QhRR/# r~   r(   )r)   s   "r*   r+   rH   Å   s   € ÷ ñ  .ñ r,   c                ó~   € / pV P                   e   V P                   VR&   V P                  e   V P                  VR&   V# )z4Return the options dict for the aggregation command.ÚmaxAwaitTimeMSrJ   )r^   r_   )rg   r‡   s   & r*   Ú_command_optionsÚ"AsyncChangeStream._command_optionsÅ   sE   € àˆØ×"Ñ"Ò.Ø(,×(?Ñ(?ˆGÐ$Ñ%Ø×ÑÒ'Ø#'×#3Ñ#3ˆG�KÑ Øˆr,   c               ó   € V ^8„  d   QhRR/# )r$   r&   zlist[dict[str, Any]]r(   )r)   s   "r*   r+   rH   Î   s   € ÷ ñ Ð';ñ r,   c                óf   € V P                  4       pRV/.pVP                  V P                  4       V# )z@Return the full aggregation pipeline for this AsyncChangeStream.z$changeStream)rˆ   ÚextendrX   )rg   r‡   Úfull_pipelines   &  r*   Ú_aggregation_pipelineÚ'AsyncChangeStream._aggregation_pipelineÎ   s5   € à×-Ñ-Ó/ˆØ0?ÀÐ/IÐ.JˆØ×Ñ˜TŸ^™^Ô,ØÐr,   c               ó$   € V ^8„  d   QhRRRRRR/# )r$   ÚresultzMapping[str, Any]Úconnr"   r&   rG   r(   )r)   s   "r*   r+   rH   Õ   s#   € ÷ ñ Ð&7ð ¸ð ÐSWñ r,   c                ót  € VR,          R,          '       g¢   RVR,          9   d   VR,          R,          V n         R# V P                  fm   V P                  RJ d[   V P                  RJ dI   VP                  ^8¼  d6   VP                  R4      V n        V P                  f   \        RV: 24      hR# R# R# R# R# R# )a%  Callback that caches the postBatchResumeToken or
startAtOperationTime from a changeStream aggregate command response
containing an empty batch of change documents.

This is implemented as a callback because we need access to the wire
version in order to determine whether to cache this value.
ÚcursorÚ
firstBatchÚpostBatchResumeTokenNFÚoperationTimez?Expected field 'operationTime' missing from command response : )r]   ra   r\   r[   Úmax_wire_versionÚgetr   )rg   r–   r—   s   &&&r*   Ú_process_resultÚ!AsyncChangeStream._process_resultÕ   sÁ   € ð �hÕ ×-Ô-Ø%¨°Õ)9Ô9Ø%+¨HÕ%5Ð6LÕ%M�Ö"à×-Ñ-Ò5Ø×+Ñ+¨uÓ4Ø×*Ñ*¨eÓ3Ø×)Ñ)¨QÔ.à06·
±
¸?Ó0K�Ô-à×0Ñ0Ò8Ü*ð&Ø&,¡Zð1óð ñ 9ñ	 /ñ 4ñ 5ñ 6ñ	 .r,   c               ó    € V ^8„  d   QhRRRR/# )r$   rA   rB   r&   r   r(   )r)   s   "r*   r+   rH   î   s   € ÷ 
ñ 
Ø3ð
à	ñ
r,   c           	   ƒ  óh  "  € V P                  V P                  \        V P                  4       V P	                  4       V P
                  V P                  R7      pV P                  P                  VP                  V P                  P                  V4      V\        P                  R7      G Rj  x€L
 #  L5i)znRun the full aggregation pipeline for this AsyncChangeStream and return
the corresponding AsyncCommandCursor.
)Úresult_processorrD   )Ú	operationN)rw   rU   r   r“   r�   rŸ   rc   r{   Ú_retryable_readÚ
get_cursorÚ_read_preference_forr   Ú	AGGREGATE)rg   rA   Úcmds   && r*   Ú_run_aggregation_cmdÚ&AsyncChangeStream._run_aggregation_cmdî   s™   é € ð ×-Ñ-Ø�L‰LÜØ×&Ñ&Ó(Ø×!Ñ!Ó#Ø!×1Ñ1Ø—M‘Mð .ó 
ˆð —\‘\×1Ñ1Ø�N‰NØ�L‰L×-Ñ-¨gÓ6ØÜ—m‘mð	 2ó 
÷ 
ð 	
ñ 
ùs   ‚B)B2Â+B0Â,B2c               ó   € V ^8„  d   QhRR/# )r$   r&   r   r(   )r)   s   "r*   r+   rH     s   € ÷ >ñ >Ð&8ñ >r,   c              ƒ  	ó  "  € V P                   P                  V P                  4      ;_uu_4       GR j  x€L
 pV P                  VR7      G R j  x€L
 uuR R R 4      GR j  x€L
  #  L0 L L	  + GR j  x€L 
 '       g   i     R # ; i5i)N)rA   )r{   Ú_tmp_sessionrb   rª   )rg   Úss   & r*   rn   Ú AsyncChangeStream._create_cursor  sS   é € Ø—<‘<×,Ñ,¨T¯]©]×;×;Ô;¸qØ×2Ñ2¸1Ð2Ó=×=÷ <×;Ô;Ù=÷ <×;×;Ó;üs\   ‚2B´A%µB¸A+ÁA'ÁA+ÁBÁA)Á BÁ'A+Á)BÁ+B	Á1A4Á2
B	Á=B	Á?	Bc               ó   € V ^8„  d   QhRR/# rk   r(   )r)   s   "r*   r+   rH     s   € ÷ 3ñ 3˜tñ 3r,   c              ƒ  ó¸   "  €  V P                   P                  4       G Rj  x€L
  V P                  4       G Rj  x€L
 V n         R#  L#  \         d     L.i ; i L5i)z7Reestablish this change stream after a resumable error.N)ro   Úcloser   rn   rp   s   &r*   Ú_resumeÚAsyncChangeStream._resume  sO   é € ð	Ø—,‘,×$Ñ$Ó&×&Ð&ð "×0Ñ0Ó2×2ˆŽñ 'øÜô 	Ùð	úá2ùsA   ‚A„A ¡A¢A ¦A¹AºAÁA ÁAÁAÁAÁAc               ó   € V ^8„  d   QhRR/# rk   r(   )r)   s   "r*   r+   rH     s   € ÷ #ñ #˜Tñ #r,   c              ƒ  ód   "  € RV n         V P                  P                  4       G Rj  x€L
  R#  L5i)zClose this AsyncChangeStream.TN)rd   ro   r³   rp   s   &r*   r³   ÚAsyncChangeStream.close  s"   é € àˆŒØ�l‰l× Ñ Ó"×"Ô"ùs   ‚%0§.¨0c               ó   € V ^8„  d   QhRR/# ©r$   r&   z AsyncChangeStream[_DocumentType]r(   )r)   s   "r*   r+   rH     s   € ÷ ñ Ð;ñ r,   c                	ó   € V # rm   r(   rp   s   &r*   Ú	__aiter__ÚAsyncChangeStream.__aiter__  s   € Øˆr,   c               ó   € V ^8„  d   QhRR/# )r$   r&   r<   r(   )r)   s   "r*   r+   rH     s   € ÷ 1ñ 1Ð9ñ 1r,   c                óB   € \         P                  ! V P                  4      # )ztThe cached resume token that will be used to resume after the most
recently returned change.

.. versionadded:: 3.9
)rV   rW   r]   rp   s   &r*   r†   ÚAsyncChangeStream.resume_token  s   € ô �}Š}˜T×/Ñ/Ó0Ð0r,   c               ó   € V ^8„  d   QhRR/# )r$   r&   r   r(   )r)   s   "r*   r+   rH   !  s   € ÷ %!ñ %!˜Mñ %!r,   c              ƒ  ó~   "  € V P                   '       d!   V P                  4       G Rj  x€L
 pVf   K0  V# \        h L5i)a`  Advance the cursor.

This method blocks until the next change document is returned or an
unrecoverable error is raised. This method is used when iterating over
all changes in the cursor. For example::

    try:
        resume_token = None
        pipeline = [{'$match': {'operationType': 'insert'}}]
        async with await db.collection.watch(pipeline) as stream:
            async for insert_change in stream:
                print(insert_change)
                resume_token = stream.resume_token
    except pymongo.errors.PyMongoError:
        # The AsyncChangeStream encountered an unrecoverable error or the
        # resume attempt failed to recreate the cursor.
        if resume_token is None:
            # There is no usable resume token because there was a
            # failure during AsyncChangeStream initialization.
            logging.error('...')
        else:
            # Use the interrupted AsyncChangeStream's resume token to create
            # a new AsyncChangeStream. The new stream will continue from the
            # last seen insert change without missing any events.
            async with await db.collection.watch(
                    pipeline, resume_after=resume_token) as stream:
                async for insert_change in stream:
                    print(insert_change)

Raises :exc:`StopIteration` if this AsyncChangeStream is closed.
N)ÚaliveÚtry_nextÚStopAsyncIteration)rg   Údocs   & r*   ÚnextÚAsyncChangeStream.next   s4   é € ðB �j�jˆjØŸ™›×'ˆCØŒØ�
ä Ð ñ	 (ùs   ‚=•=¨;©=³	=c               ó   € V ^8„  d   QhRR/# )r$   r&   r'   r(   )r)   s   "r*   r+   rH   K  s   € ÷  ñ  �tñ  r,   c                ó$   € V P                   '       * # )zØDoes this cursor have the potential to return more data?

.. note:: Even if :attr:`alive` is ``True``, :meth:`next` can raise
    :exc:`StopIteration` and :meth:`try_next` can return ``None``.

.. versionadded:: 3.8
)rd   rp   s   &r*   rÃ   ÚAsyncChangeStream.aliveJ  s   € ð —<‘<ÔÐr,   c               ó   € V ^8„  d   QhRR/# )r$   r&   zOptional[_DocumentType]r(   )r)   s   "r*   r+   rH   V  s   € ÷ ]ñ ]Ð 7ñ ]r,   c              ƒ  ó(  "  € V P                   '       g5   V P                  P                  '       g   V P                  4       G Rj  x€L
    V P                  P	                  R4      G Rj  x€L
 pT P                  P                  '       g   RT n         Tf=   T P                  P                  e#   T P                  P                  T n        RT n        T#  TR,          pT P                  P                  4       '       g3   T P                  P                  '       d   T P                  P                  pRT n        RT n        Y0n        RT n        T P$                  '       d!   \'        TP(                  T P*                  4      # T#  EL8 EL  \
         d[   p\        T4      '       g   h T P                  4       G Rj  x€L 
  T P                  P	                  R4      G Rj  x€L 
 p Rp?ELtRp?ii ; i  \
         dC   p\        T4      '       g,   TP                  '       g   T P                  4       G Rj  x€L 
  h Rp?i\         d    T P                  4       G Rj  x€L 
  h i ; i  \         d'    T P                  4       G Rj  x€L 
  \        R4      Rhi ; i5i)a  Advance the cursor without blocking indefinitely.

This method returns the next change document without waiting
indefinitely for the next change. For example::

    async with await db.collection.watch() as stream:
        while stream.alive:
            change = await stream.try_next()
            # Note that the AsyncChangeStream's resume token may be updated
            # even when no changes are returned.
            print("Current resume token: %r" % (stream.resume_token,))
            if change is not None:
                print("Change document: %r" % (change,))
                continue
            # We end up here when there are no recent changes.
            # Sleep for a while before trying again to avoid flooding
            # the server with getMore requests when no changes are
            # available.
            asyncio.sleep(10)

If no change document is cached locally then this method runs a single
getMore command. If the getMore yields any documents, the next
document is returned, otherwise, if the getMore returns no documents
(because there have been no changes) then ``None`` is returned.

:return: The next change document or ``None`` when no document is available
  after running a single getMore or when the cursor is closed.

.. versionadded:: 3.8
NTFÚ_idzECannot provide resume functionality when the resume token is missing.)rd   ro   rÃ   r´   Ú	_try_nextr   r4   Útimeoutr³   ÚBaseExceptionÚ_post_batch_resume_tokenr]   ra   ÚKeyErrorr   Ú	_has_nextr[   r\   rP   r   ÚrawrQ   )rg   Úchanger%   r†   s   &   r*   rÄ   ÚAsyncChangeStream.try_nextU  sû  é € ð@ �|�|ˆ| D§L¡L×$6×$6Ð$6Ø—,‘,“.× Ð ð	ð=Ø#Ÿ|™|×5Ñ5°dÓ;×;�ð" �|‰|×!×!Ð!ØˆDŒLð Š>ð
 �|‰|×4Ñ4Ò@Ø%)§\¡\×%JÑ%J�Ô"Ø04�Ô-ØˆMð	Ø! %�=ˆLð �|‰|×%Ñ%×'Ò'¨D¯L©L×,Q×,QÐ,QØŸ<™<×@Ñ@ˆLð "'ˆÔØ"&ˆÔð *ÔØ(,ˆÔ%à××ÐÜ  §¡¨T×-EÑ-EÓFÐFØˆò{ !ò <øÜô =Ü! #—’ØØ—l‘l“n×$Ñ$Ø#Ÿ|™|×5Ñ5°eÓ<×<Ð<–ûð	=ûô
 ô 	ä˜c—?’?¨3¯;¯;¨;Ø—j‘j“l×"Ñ"Øûäô 	Ø—*‘*“,×ÑØð	ûô, ô 	Ø—*‘*“,×ÑÜ"ØWóàðð	üsä   ‚.J±JÁE<ÁJÁF Á)E?Á*F Á.JÂ
AJÃ	I ÃJÃ;JÄA&JÅ?F ÆG'Æ%G"Æ2F5Æ3#G"ÇGÇG"ÇG* Ç JÇ"G'Ç'G* Ç*IÇ5"H2ÈH2È+H.È,H2È2IÈ?IÉIÉIÉJÉJÉ<I?É=JÊJc               ó   € V ^8„  d   QhRR/# rº   r(   )r)   s   "r*   r+   rH   µ  s   € ÷ ñ Ð"Bñ r,   c              ƒ  	ó   "  € V # 5irm   r(   rp   s   &r*   Ú
__aenter__ÚAsyncChangeStream.__aenter__µ  s
   é € Øˆùs   ‚c               ó(   € V ^8„  d   QhRRRRRRRR/# )r$   Úexc_typer   Úexc_valÚexc_tbr&   rG   r(   )r)   s   "r*   r+   rH   ¸  s(   € ÷ ñ ¨ð °cð À3ð È4ñ r,   c              ƒ  	óB   "  € V P                  4       G R j  x€L
  R #  L5irm   )r³   )rg   rÝ   rÞ   rß   s   &&&&r*   Ú	__aexit__ÚAsyncChangeStream.__aexit__¸  s   é € Ø�j‰j‹l×Ôùs   ‚–—)r_   rd   r`   rc   ro   rP   rY   rZ   r^   rQ   rX   r]   rb   rf   ra   rU   re   r\   r[   )NNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rh   rq   Úpropertyrw   r{   rˆ   r�   r“   rŸ   rª   rn   r´   r³   r¼   r†   r   ÚapplyrÇ   Ú	__anext__rÃ   rÄ   rÚ   rá   Ú__static_attributes__r(   r,   r*   r6   r6   Z   s×   † ñ	÷5:õn3ð ô"ó ð"ð ô"ó ð"õõ0õõõ2
õ*>õ3õ#õ
ð ô1ó ð1ð ‡[�[ô%!ó ð%!ðN €Iàô ó ð ð ‡[�[ô]ó ð]õ~÷ñ r,   r6   c                  óR   € ] tR tRt$ RtR]R&   ]R R l4       t]R R l4       tR	t	R
# )ÚAsyncCollectionChangeStreami¼  zçA change stream that watches changes on a single collection.

Should not be called directly by application developers. Use
helper method :meth:`pymongo.asynchronous.collection.AsyncCollection.watch` instead.

.. versionadded:: 3.7
zAsyncCollection[_DocumentType]rU   c               ó   € V ^8„  d   QhRR/# )r$   r&   z#Type[_CollectionAggregationCommand]r(   )r)   s   "r*   r+   Ú(AsyncCollectionChangeStream.__annotate__È  s   € ÷ -ñ -Ð,Oñ -r,   c                	ó   € \         # rm   )r   rp   s   &r*   rw   Ú6AsyncCollectionChangeStream._aggregation_command_classÇ  s   € ä,Ð,r,   c               ó   € V ^8„  d   QhRR/# ©r$   r&   zAsyncMongoClient[_DocumentType]r(   )r)   s   "r*   r+   rï   Ì  s   € ÷ ,ñ ,Ð8ñ ,r,   c                	óB   € V P                   P                  P                  # rm   )rU   ÚdatabaseÚclientrp   s   &r*   r{   Ú#AsyncCollectionChangeStream._clientË  s   € à�|‰|×$Ñ$×+Ñ+Ð+r,   r(   N©
rã   rä   rå   ræ   rç   Ú__annotations__rè   rw   r{   rë   r(   r,   r*   rí   rí   ¼  s5   ‡ ñð ,Ó+àô-ó ð-ð ô,ó ô,r,   rí   c                  óR   € ] tR tRt$ RtR]R&   ]R R l4       t]R R l4       tR	t	R
# )ÚAsyncDatabaseChangeStreamiÐ  zíA change stream that watches changes on all collections in a database.

Should not be called directly by application developers. Use
helper method :meth:`pymongo.asynchronous.database.AsyncDatabase.watch` instead.

.. versionadded:: 3.7
zAsyncDatabase[_DocumentType]rU   c               ó   € V ^8„  d   QhRR/# )r$   r&   z!Type[_DatabaseAggregationCommand]r(   )r)   s   "r*   r+   Ú&AsyncDatabaseChangeStream.__annotate__Ü  s   € ÷ +ñ +Ð,Mñ +r,   c                	ó   € \         # rm   )r   rp   s   &r*   rw   Ú4AsyncDatabaseChangeStream._aggregation_command_classÛ  s   € ä*Ð*r,   c               ó   € V ^8„  d   QhRR/# ró   r(   )r)   s   "r*   r+   rý   à  s   € ÷ #ñ #Ð8ñ #r,   c                	ó.   € V P                   P                  # rm   )rU   rö   rp   s   &r*   r{   Ú!AsyncDatabaseChangeStream._clientß  s   € à�|‰|×"Ñ"Ð"r,   r(   Nrø   r(   r,   r*   rû   rû   Ð  s5   ‡ ñð *Ó)àô+ó ð+ð ô#ó ô#r,   rû   c                  ó2   a € ] tR tRtRtR V 3R lltRtV ;t# )ÚAsyncClusterChangeStreamiä  zõA change stream that watches changes on all collections in the cluster.

Should not be called directly by application developers. Use
helper method :meth:`pymongo.asynchronous.mongo_client.AsyncMongoClient.watch` instead.

.. versionadded:: 3.7
c               ó   € V ^8„  d   QhRR/# r~   r(   )r)   s   "r*   r+   Ú%AsyncClusterChangeStream.__annotate__í  s   € ÷ ñ ¨ñ r,   c                	ó.   <€ \         SV `  4       pR VR&   V# )TÚallChangesForCluster)Úsuperrˆ   )rg   r‡   Ú	__class__s   & €r*   rˆ   Ú/AsyncClusterChangeStream._change_stream_optionsí  s    ø€ Ü‘'Ñ0Ó2ˆØ*.ˆÐ&Ñ'Øˆr,   r(   )rã   rä   rå   ræ   rç   rˆ   rë   Ú__classcell__)r
  s   @r*   r  r  ä  s   ø† ñ÷ö r,   r  )é   é   éY   é[   é½   i  i)#  i{'  iP-  iR-  i{4  i|4  é?   é–   iL4  éê   é…   )<rç   Ú
__future__r   rV   Útypingr   r   r   r   r   r   r	   Úbsonr
   r   Úbson.raw_bsonr   Úbson.timestampr   Úpymongor   r   Ú pymongo.asynchronous.aggregationr   r   r   Ú#pymongo.asynchronous.command_cursorr   Úpymongo.collationr   Úpymongo.errorsr   r   r   r   r   Úpymongo.operationsr   Úpymongo.typingsr   r   r   Ú_IS_SYNCÚ	frozensetr3   Ú#pymongo.asynchronous.client_sessionr   Úpymongo.asynchronous.collectionr   Úpymongo.asynchronous.databaser    Ú!pymongo.asynchronous.mongo_clientr!   Úpymongo.asynchronous.poolr"   r4   r6   rí   rû   r  r(   r,   r*   Ú<module>r)     sÈ   ðñ HÝ "ã ß N× NÑ Nç ,Ý )Ý $ß !÷ñ õ
 CÝ 8÷õ õ #ß BÑ Bà€ñ &òóÐ ÷. ÝFÝ?Ý;ÝBÝ9õ
ô_˜ Õ.ô _ôD,Ð"3°MÕ"Bô ,ô(#Ð 1°-Õ @ô #ô(Ð8¸ÕGö r,   