§
    šŠtj^­ ã            
      óÌ  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZ d dlmZmZmZmZmZmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZm Z m!Z!m"Z" d d
l#m$Z$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z;m<Z< d dl=m>Z> d dl?m@Z@mAZA d dlBmCZCmDZDmEZEmFZF d dlGmHZH d dlImJZJmKZKmLZLmMZMmNZNmOZO d dlPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZh d dlimjZj d dlkmlZlmmZm d dlnmoZompZpmqZqmrZr d dlsmtZt d dlumvZvmwZw d dlxmyZymzZzm{Z{m|Z| d d l}m~Z~ d d!lm€Z€ d d"l�m‚Z‚ d d#lƒm„Z„ d d$l…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠ d d%l‹mŒZŒ d d&l�mŽZŽm�Z�m�Z�m‘Z‘m’Z’ d d'l“m”Z” d d(l•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z›mœZœ d d)l�mžZž d d*lŸm Z m¡Z¡ d d+l¢m£Z£m¤Z¤ d d,l¥m¦Z¦m§Z§ d d-l¨m©Z©mªZª d d.l«m¬Z¬ d d/l­m®Z® d d0l¯m°Z° d d1l±m²Z²m³Z³ d d2l´mµZµm¶Z¶ d d3l·m¸Z¸m¹Z¹ d d4lºm»Z»m¼Z¼m½Z½ d d5l¾m¿Z¿mÀZÀmÁZÁ d d6lÂmÃZÃmÄZÄmÅZÅmÆZÆmÇZÇ d d7lÈmÉZÉ d d8lÊmËZË d d9lÌmÍZÍmÎZÎ d d:lÏmÐZÐmÑZÑmÒZÒmÓZÓ d d;lÔmÕZÕmÖZÖm×Z×mØZØmÙZÙmÚZÚmÛZÛmÜZÜmÝZÝmÞZÞmßZßmàZàmáZámâZâ d d<lãmäZämåZåmæZæmçZç d d=lèméZé 	 d d>lêmëZë n# eì$ r dZëY nw xY wd?Zíee-ge.f         ez  Zî G d@„ dA¦  «        ZïdBZðdCeñdD<   d~dI„ZòddM„Zód€dQ„Zô G dR„ dSe¿eçeäeåeæf         eeçeäeåeæf         ¦  «        Zõd�dW„Zö	 	 	 d‚dƒdh„Z÷d„dl„Zød…dp„Zùd†ds„Zúd‡dx„Zûdˆd}„ZüdS )‰é    )ÚannotationsN)ÚdefaultdictÚdeque)ÚAsyncIteratorÚ	AwaitableÚCallableÚIteratorÚMappingÚSequence)Úis_dataclassÚreplace)Ú	timedelta)Úpartial)Úisclass)ÚAnyÚGenericÚLiteralÚcastÚget_type_hintsÚoverload)ÚUUIDÚuuid5)Úbeta)Ú	get_debug)ÚRunnableSequence)ÚInputÚOutput)ÚRunnableConfigÚ%get_async_callback_manager_for_configÚget_callback_manager_for_config)ÚGraph)ÚStreamEvent)Ú	BaseCache)ÚBaseCheckpointSaverÚ
CheckpointÚCheckpointTuple)Ú	BaseStore)Ú	BaseModelÚTypeAdapter)ÚSelfÚUnpackÚ
deprecatedÚis_typeddict)Ú_serde)Úensure_configÚmerge_configsÚpatch_checkpoint_mapÚpatch_configÚpatch_configurableÚrecast_checkpoint_ns)ÚCACHE_NS_WRITESÚCONFÚCONFIG_KEY_CACHEÚCONFIG_KEY_CHECKPOINT_IDÚCONFIG_KEY_CHECKPOINT_NSÚCONFIG_KEY_CHECKPOINTERÚCONFIG_KEY_DURABILITYÚCONFIG_KEY_NODE_FINISHEDÚCONFIG_KEY_READÚCONFIG_KEY_RUNNER_SUBMITÚCONFIG_KEY_RUNTIMEÚCONFIG_KEY_SENDÚCONFIG_KEY_STREAMÚCONFIG_KEY_STREAM_MESSAGES_V2ÚCONFIG_KEY_TASK_IDÚCONFIG_KEY_THREAD_IDÚERRORÚINPUTÚ	INTERRUPTÚNS_ENDÚNS_SEPÚNULL_TASK_IDÚPUSHÚTASKS)Úcreate_model)Ú
AsyncQueueÚ	SyncQueue)ÚRunnableÚRunnableLikeÚRunnableSeqÚcoerce_to_runnable)Úcoerce_timeout_policy)ÚMISSINGÚDeprecatedKwargs)ÚGraphInterruptEventÚGraphResumeEventÚ+get_async_graph_callback_manager_for_configÚ*get_sync_graph_callback_manager_for_config)ÚBaseChannel)ÚTopic)Ú
get_config)ÚEND)Ú	ErrorCodeÚGraphDrainedÚGraphRecursionErrorÚInvalidUpdateErrorÚcreate_error_message)ÚManagedValueSpec)ÚPregelTaskWritesÚ_scratchpadÚapply_writesÚ
local_readÚprepare_next_tasks)Ú
identifier)Úachannels_from_checkpointÚchannels_from_checkpointÚcopy_checkpointÚcreate_checkpointÚ+create_checkpoint_plan_for_update_state_apiÚempty_checkpointÚget_updated_channels_from_tasks)Ú
draw_graph)Ú	map_inputÚread_channels)ÚAsyncPregelLoopÚSyncPregelLoop)ÚStreamMessagesHandlerÚStreamMessagesHandlerV2)ÚDEFAULT_BOUNDÚ
PregelNode)ÚRetryPolicy)ÚPregelRunner)ÚStreamToolCallHandler)Úget_new_channel_versionsÚvalidate_timeout_supported)Úvalidate_graphÚvalidate_keys)ÚChannelWriteÚChannelWriteEntry)Úget_bolded_textÚget_colored_textÚtasks_w_writes)ÚPregelProtocolÚStreamChunkÚStreamProtocol)ÚDEFAULT_RUNTIMEÚBaseUserÚ
RunControlÚRuntimeÚ
ServerInfo)Ú	StreamMux)ÚStreamTransformer)ÚAsyncGraphRunStreamÚGraphRunStream)ÚLifecycleTransformerÚMessagesTransformerÚSubgraphTransformerÚValuesTransformer)ÚAllÚCachePolicyÚCheckpointerÚCommandÚ
DurabilityÚGraphOutputÚ	InterruptÚSendÚStateSnapshotÚStateUpdateÚ
StreamModeÚ
StreamPartÚTimeoutPolicyÚensure_valid_checkpointer)ÚContextTÚInputTÚOutputTÚStateT)ÚLangGraphDeprecatedSinceV10)Ú_StreamingCallbackHandler)ÚNodeBuilderÚPregelc                  óÌ   — e Zd ZU dZded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   d8d„Zd9d„Zddœd:d„Zd;d „Zd<d#„Z	d=d'„Z
d>d+„Zd?d.„Zd@d1„ZdAd4„ZdBd6„Zd7S )Cr«   )	Ú	_channelsÚ	_triggersÚ_tagsÚ	_metadataÚ_writesÚ_boundÚ_retry_policyÚ_cache_policyÚ_timeoutzstr | list[str]r®   z	list[str]r¯   r°   údict[str, Any]r±   zlist[ChannelWriteEntry]r²   rP   r³   zlist[RetryPolicy]r´   úCachePolicy | Nonerµ   zTimeoutPolicy | Noner¶   ÚreturnÚNonec                óŽ   — g | _         g | _        g | _        i | _        g | _        t
          | _        g | _        d | _        d | _	        d S ©N)
r®   r¯   r°   r±   r²   ry   r³   r´   rµ   r¶   ©Úselfs    úS/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langgraph/pregel/main.pyÚ__init__zNodeBuilder.__init__å   sI   € ð ˆŒØˆŒØˆŒ
ØˆŒØˆŒÝ#ˆŒØˆÔØ!ˆÔØˆŒˆˆó    ÚchannelÚstrr*   c                óv   — | j         s|| _         nt          d¦  «        ‚| j                             |¦  «         | S )zSubscribe to a single channel.zQCannot subscribe to single channels when other channels are already subscribed to)r®   Ú
ValueErrorr¯   Úappend©r¾   rÂ   s     r¿   Úsubscribe_onlyzNodeBuilder.subscribe_onlyò   sI   € ð
 Œ~ð 	Ø$ˆDŒNˆNåØcñô ð ð 	Œ×Ò˜gÑ&Ô&Ð&àˆrÁ   T)ÚreadÚchannelsrÉ   Úboolc               ó\  — t          | j        t          ¦  «        rt          d¦  «        ‚|r6| j        st	          |¦  «        | _        n| j                             |¦  «         t          |t          ¦  «        r| j                             |¦  «         n| j                             |¦  «         | S )a½  Add channels to subscribe to.

        Node will be invoked when any of these channels are updated, with a dict of the
        channel values as input.

        Args:
            channels: Channel name(s) to subscribe to
            read: If `True`, the channels will be included in the input to the node.
                Otherwise, they will trigger the node without being sent in input.

        Returns:
            Self for chaining
        z@Cannot subscribe to channels when subscribed to a single channel)Ú
isinstancer®   rÃ   rÅ   ÚlistÚextendr¯   rÆ   )r¾   rÉ   rÊ   s      r¿   Úsubscribe_tozNodeBuilder.subscribe_to  s¬   € õ$ �d”n¥cÑ*Ô*ð 	ÝØRñô ð ð ð 	0Ø”>ð 0Ý!% h¡¤�”�à”×%Ò% hÑ/Ô/Ð/å�h¥Ñ$Ô$ð 	,ØŒN×!Ò! (Ñ+Ô+Ð+Ð+àŒN×!Ò! (Ñ+Ô+Ð+àˆrÁ   c                ó‚   — t          | j        t          ¦  «        s
J d¦   «         ‚| j                             |¦  «         | S )zFAdds the specified channels to read from, without subscribing to them.zBCannot read additional channels when subscribed to single channels)rÍ   r®   rÎ   rÏ   )r¾   rÊ   s     r¿   Ú	read_fromzNodeBuilder.read_from%  sJ   € õ
 ˜$œ.­$Ñ/Ô/ð 	
ð 	
ØPñ	
ô 	
Ð/ð 	Œ×Ò˜hÑ'Ô'Ð'ØˆrÁ   ÚnoderQ   c                ó¦   — | j         t          ur+t          | j         t          |dd¬¦  «        ¦  «        | _         nt          |dd¬¦  «        | _         | S )zAdds the specified node.NT)ÚnameÚtrace)r³   ry   rR   rS   )r¾   rÓ   s     r¿   ÚdozNodeBuilder.do0  sX   € ð
 Œ;�mÐ+Ð+Ý%Ø”Õ/°¸4ÀtÐLÑLÔLñô ˆDŒKˆKõ -¨T¸ÀDÐIÑIÔIˆDŒKØˆrÁ   ústr | ChannelWriteEntryÚkwargsÚ_WriteValuec                óº   — | j                              d„ |D ¦   «         ¦  «         | j                              d„ |                     ¦   «         D ¦   «         ¦  «         | S )zÄAdd channel writes.

        Args:
            *channels: Channel names to write to.
            **kwargs: Channel name and value mappings.

        Returns:
            Self for chaining
        c              3  ób   K  — | ]*}t          |t          ¦  «        rt          |¦  «        n|V — Œ+d S r¼   )rÍ   rÃ   rƒ   ©Ú.0Úcs     r¿   ú	<genexpr>z'NodeBuilder.write_to.<locals>.<genexpr>K  sP   è è € ð 
ð 
ØBC¥J¨qµ#Ñ$6Ô$6Ð=Õ˜aÑ Ô Ð ¸Að
ð 
ð 
ð 
ð 
ð 
rÁ   c              3  ó~   K  — | ]8\  }}t          |¦  «        rt          ||¬ ¦  «        nt          ||¬¦  «        V — Œ9dS ))Úmapper©ÚvalueN)Úcallablerƒ   ©rÞ   ÚkÚvs      r¿   rà   z'NodeBuilder.write_to.<locals>.<genexpr>N  sj   è è € ð 
ð 
ñ ��1õ ˜‰{Œ{ð/Õ˜a¨Ð*Ñ*Ô*Ð*å" 1¨AÐ.Ñ.Ô.ð
ð 
ð 
ð 
ð 
ð 
rÁ   )r²   rÏ   Úitems)r¾   rÊ   rÙ   s      r¿   Úwrite_tozNodeBuilder.write_to=  sƒ   € ð 	Œ×Òð 
ð 
ØGOð
ñ 
ô 
ñ 	
ô 	
ð 	
ð 	Œ×Òð 
ð 
ð Ÿš™œð	
ñ 
ô 
ñ 	
ô 	
ð 	
ð ˆrÁ   ÚtagsÚmetadatar   c                ón   — | j                              |¦  «         | j                             |¦  «         | S )z!Add tags or metadata to the node.)r°   rÏ   r±   Úupdate)r¾   rë   rì   s      r¿   ÚmetazNodeBuilder.metaW  s3   € àŒ
×Ò˜$ÑÔÐØŒ×Ò˜hÑ'Ô'Ð'ØˆrÁ   Úpoliciesr{   c                ó:   — | j                              |¦  «         | S )z Adds retry policies to the node.)r´   rÏ   )r¾   rð   s     r¿   Úadd_retry_policieszNodeBuilder.add_retry_policies]  s   € àÔ×!Ò! (Ñ+Ô+Ð+ØˆrÁ   Úpolicyr˜   c                ó   — || _         | S )z Adds cache policies to the node.)rµ   )r¾   ró   s     r¿   Úadd_cache_policyzNodeBuilder.add_cache_policyb  s   € à#ˆÔØˆrÁ   Útimeoutú(float | timedelta | TimeoutPolicy | Nonec                ó.   — t          |¦  «        | _        | S )z1Set the per-attempt timeout policy for this node.)rT   r¶   )r¾   rö   s     r¿   Úset_timeoutzNodeBuilder.set_timeoutg  s   € å-¨gÑ6Ô6ˆŒØˆrÁ   rz   c                ó¨   — t          | j        | j        | j        | j        t          | j        ¦  «        g| j        | j        | j	        | j
        ¬¦	  «	        S )zBuilds the node.)	rÊ   Útriggersrë   rì   ÚwritersÚboundÚretry_policyÚcache_policyrö   )rz   r®   r¯   r°   r±   r‚   r²   r³   r´   rµ   r¶   r½   s    r¿   ÚbuildzNodeBuilder.buildl  sS   € åØ”^Ø”^Ø”Ø”^Ý! $¤,Ñ/Ô/Ð0Ø”+ØÔ+ØÔ+Ø”Mð

ñ 

ô 

ð 
	
rÁ   N©r¹   rº   )rÂ   rÃ   r¹   r*   )rÊ   rÃ   rÉ   rË   r¹   r*   )rÊ   rÃ   r¹   r*   )rÓ   rQ   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¹   rz   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__Ú__annotations__rÀ   rÈ   rÐ   rÒ   r×   rê   rï   rò   rõ   rù   r   © rÁ   r¿   r«   r«   Î   sw  € € € € € € ð
€Ið ÐÐÑØÐÐÑØÐÐÑØÐÐÑØ$Ð$Ð$Ñ$ØÐÐÑØ$Ð$Ð$Ñ$Ø%Ð%Ð%Ñ%Ø"Ð"Ð"Ñ"ðð ð ð ðð ð ð ð& ð!ð !ð !ð !ð !ð !ðF	ð 	ð 	ð 	ðð ð ð ðð ð ð ð4ð ð ð ðð ð ð ð
ð ð ð ð
ð ð ð ð

ð 
ð 
ð 
ð 
ð 
rÁ   r«   )Ústream_modeÚ	subgraphsútuple[str, ...]Ú_V3_INVARIANT_KWARGSrÙ   r·   r¹   rº   c                ó~   ‡ — ˆ fd„t           D ¦   «         }|r&t          dd                     |¦  «        › d�¦  «        ‚d S )Nc                ó   •— g | ]}|‰v ¯|‘Œ	S r  r  )rÞ   rç   rÙ   s     €r¿   ú
<listcomp>z/_reject_v3_invariant_kwargs.<locals>.<listcomp>„  s   ø€ ÐAÐAÐA˜°Q¸&°[°[�!°[°[°[rÁ   zIstream_events(version='v3') / astream_events(version='v3') do not accept z, z‰; v3 owns these (stream_mode is built from the transformer mux, subgraphs is forced True so nested namespaces flow through scoped muxes).)r  Ú	TypeErrorÚjoin)rÙ   Ú
collisionss   ` r¿   Ú_reject_v3_invariant_kwargsr  ƒ  sh   ø€ ØAÐAÐAÐAÕ1ÐAÑAÔA€JØð 
ÝðKØŸ)š) JÑ/Ô/ðKð Kð Kñ
ô 
ð 	
ð
ð 
rÁ   Úmuxr   úlist[StreamMode]c                ó´   — t          ¦   «         }| j        D ]4}|                     t          dt	          |dd¦  «        ¦  «        ¦  «         Œ5t          |¦  «        S )uX  Return the union of `required_stream_modes` across registered transformers.

    Transformers declare the stream modes they need to function, and
    `stream_events(version="v3")` asks the graph for exactly that union â€” no hardcoded
    default set. If zero transformers declare a given mode, the graph
    does not stream events for it.
    ztuple[StreamMode, ...]Úrequired_stream_modesr  )ÚsetÚ_transformersrî   r   ÚgetattrrÎ   )r  ÚmodesÚtransformers      r¿   Ú_collect_stream_modesr  Ž  sh   € õ !™UœU€EØÔ(ð 
ð 
ˆØ�ŠÝØ(Ý˜Ð%<¸bÑAÔAñô ñ	
ô 	
ð 	
ð 	
õ �‰;Œ;ÐrÁ   Úspecsú1Sequence[Callable[[tuple[str, ...]], Any]] | Noneú&list[Callable[[tuple[str, ...]], Any]]c                ó*  — g }| pdD ]‹}t          |t          ¦  «        r%t          dt          |¦  «        j        › d�¦  «        ‚t          |¦  «        s%t          dt          |¦  «        j        › d�¦  «        ‚|fdd„}|                     |¦  «         ŒŒ|S )ae  Normalize stream transformer specs to scoped factories.

    A stream transformer spec is a callable that accepts
    `scope: tuple[str, ...]` and returns a fresh `StreamTransformer`.
    Transformer classes work when their constructor follows the same
    shape. Pre-built instances are rejected because they cannot be
    cloned into subgraph scopes.
    r  z_stream_events(version='v3') transformers must be scope-aware callables, got pre-built instance zY. Pass the transformer class or a factory like `lambda scope: MyTransformer(scope, ...)`.zLstream_events(version='v3') transformers must be scope-aware callables, got ú.Úscoper
  Ú_specúCallable[..., Any]r¹   r   c                ó   —  || ¦  «        S r¼   r  )r"  r#  s     r¿   Úfactoryz8_normalize_stream_transformer_factories.<locals>.factory»  s   € Ø�5˜‘<”<ÐrÁ   )r"  r
  r#  r$  r¹   r   )rÍ   r�   r  Útyper  rå   rÆ   )r  Ú	factoriesÚspecr&  s       r¿   Ú'_normalize_stream_transformer_factoriesr*  ¡  sâ   € ð 9;€IØ�˜ð "ð "ˆÝ�dÕ-Ñ.Ô.ð 	Ýð=Ý*.¨t©*¬*Ô*=ð=ð =ð =ñô ð õ ˜‰~Œ~ð 	Ýð.Ý˜D‘z”zÔ*ð.ð .ð .ñô ð ð
 IMð 	 ð 	 ð 	 ð 	 ð 	 ð 	×Ò˜Ñ!Ô!Ð!Ð!ØÐrÁ   c                  ó’  ‡ — e Zd ZU dZded<   ded<   dZded<   	 d	Zd
ed<   	 ded<   dZded<   	 ded<   ded<   ded<   dZded<   	 d
ed<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded <   	 dZd!ed"<   	 dZd#ed$<   	 dZd%ed&<   d'Zd(ed)<   d*ed+<   d,ed-<   d.dd	ddddddddddddddd'dd/œdÚd=„ZdÛd?„Z	 dÜd	d@œdÝdD„Z	 dÜd	d@œdÝdE„ZdÞdI„ZdÜdßdM„ZdÜdàdN„ZdádO„Z edPd¬Q¦  «        ddRœdâdV„¦   «         Z edWd¬Q¦  «        ddRœdãdX„¦   «         ZdädY„ZedådZ„¦   «         ZdÜdæˆ fd[„Z	 dÜdçd\„Z edåd]„¦   «         Z!	 dÜdæˆ fd^„Z"	 dÜdçd_„Z#edèda„¦   «         Z$edédb„¦   «         Z%dd	dcœdêdh„Z&dd	dcœdëdj„Z'dZ(dkedl<   dZ)dkedm<   dìdp„Z*	 	 dídîdv„Z+	 	 dídîdw„Z,d	dxœdïdz„Z-d	dxœdïd{„Z.dddd|œdðd‚„Z/dddd|œdñd„„Z0dòd‡„Z1dòdˆ„Z2	 	 dódôdŒ„Z3	 	 dódõdŽ„Z4dd�œdöd™„Z5e6	 dÜddddddddd	ddšœ
d÷d¥„¦   «         Z7e6	 dÜddddddddd	dd¦d§œdødª„¦   «         Z7	 dÜddddddddd	dd«d§œdùd­„Z7e6	 dÜddddddddd	ddšœ
dúd¯„¦   «         Z8e6	 dÜddddddddd	dd¦d§œdûd±„¦   «         Z8	 dÜddddddddd	dd«d§œdüd²„Z8 e9d³¬´¦  «        	 dÜdddddµœdýd¸„¦   «         Z: e9d³¬´¦  «        	 dÜdddddµœdþdº„¦   «         Z;e6	 dÜd»d¼œdÿd¾„¦   «         Z<e6	 dÜdddddµœ�d dÀ„¦   «         Z<	 dÜd»dddddÁœ�dˆ fdÃ„Z<e6	 dÜd»d¼œ�ddÅ„¦   «         Z=e6	 dÜdddddµœ�ddÇ„¦   «         Z=	 dÜd»dddddÁœ�dˆ fdÉ„Z=e6	 dÜdd¦dddddddÊœ�ddÍ„¦   «         Z>e6	 dÜddddddddÎœ�ddÐ„¦   «         Z>e6	 dÜddddddddd¦dÑœ	�ddÒ„¦   «         Z>	 dÜddddddddd«dÑœ	�ddÓ„Z>e6	 dÜdd¦dddddddÊœ�ddÔ„¦   «         Z?e6	 dÜddddddddÎœ�ddÕ„¦   «         Z?e6	 dÜddddddddd¦dÑœ	�ddÖ„¦   «         Z?	 dÜddddddddd«dÑœ	�dd×„Z?dÜ�d	dØ„Z@dÜ�d	dÙ„ZAˆ xZBS (
  r¬   uo  Pregel manages the runtime behavior for LangGraph applications.

    ## Overview

    Pregel combines [**actors**](https://en.wikipedia.org/wiki/Actor_model)
    and **channels** into a single application.
    **Actors** read data from channels and write data to channels.
    Pregel organizes the execution of the application into multiple steps,
    following the **Pregel Algorithm**/**Bulk Synchronous Parallel** model.

    Each step consists of three phases:

    - **Plan**: Determine which **actors** to execute in this step. For example,
        in the first step, select the **actors** that subscribe to the special
        **input** channels; in subsequent steps,
        select the **actors** that subscribe to channels updated in the previous step.
    - **Execution**: Execute all selected **actors** in parallel,
        until all complete, or one fails, or a timeout is reached. During this
        phase, channel updates are invisible to actors until the next step.
    - **Update**: Update the channels with the values written by the **actors**
        in this step.

    Repeat until no **actors** are selected for execution, or a maximum number of
    steps is reached.

    ## Actors

    An **actor** is a `PregelNode`.
    It subscribes to channels, reads data from them, and writes data to them.
    It can be thought of as an **actor** in the Pregel algorithm.
    `PregelNodes` implement LangChain's
    Runnable interface.

    ## Channels

    Channels are used to communicate between actors (`PregelNodes`).
    Each channel has a value type, an update type, and an update function â€“ which
    takes a sequence of updates and
    modifies the stored value. Channels can be used to send data from one chain to
    another, or to send data from a chain to itself in a future step. LangGraph
    provides a number of built-in channels:

    ### Basic channels: LastValue and Topic

    - `LastValue`: The default channel, stores the last value sent to the channel,
       useful for input and output values, or for sending data from one step to the next
    - `Topic`: A configurable PubSub Topic, useful for sending multiple values
       between *actors*, or for accumulating output. Can be configured to deduplicate
       values, and/or to accumulate values over the course of multiple steps.

    ### Advanced channels: Context and BinaryOperatorAggregate

    - `Context`: exposes the value of a context manager, managing its lifecycle.
        Useful for accessing external resources that require setup and/or teardown. e.g.
        `client = Context(httpx.Client)`
    - `BinaryOperatorAggregate`: stores a persistent value, updated by applying
        a binary operator to the current value and each update
        sent to the channel, useful for computing aggregates over multiple steps. e.g.
        `total = BinaryOperatorAggregate(int, operator.add)`

    ## Examples

    Most users will interact with Pregel via a
    [StateGraph (Graph API)][langgraph.graph.StateGraph] or via an
    [entrypoint (Functional API)][langgraph.func.entrypoint].

    However, for **advanced** use cases, Pregel can be used directly. If you're
    not sure whether you need to use Pregel directly, then the answer is probably no
    - you should use the Graph API or Functional API instead. These are higher-level
    interfaces that will compile down to Pregel under the hood.

    Here are some examples to give you a sense of how it works:

    Example: Single node application
        ```python
        from langgraph.channels import EphemeralValue
        from langgraph.pregel import Pregel, NodeBuilder

        node1 = (
            NodeBuilder().subscribe_only("a")
            .do(lambda x: x + x)
            .write_to("b")
        )

        app = Pregel(
            nodes={"node1": node1},
            channels={
                "a": EphemeralValue(str),
                "b": EphemeralValue(str),
            },
            input_channels=["a"],
            output_channels=["b"],
        )

        app.invoke({"a": "foo"})
        ```

        ```con
        {'b': 'foofoo'}
        ```

    Example: Using multiple nodes and multiple output channels
        ```python
        from langgraph.channels import LastValue, EphemeralValue
        from langgraph.pregel import Pregel, NodeBuilder

        node1 = (
            NodeBuilder().subscribe_only("a")
            .do(lambda x: x + x)
            .write_to("b")
        )

        node2 = (
            NodeBuilder().subscribe_to("b")
            .do(lambda x: x["b"] + x["b"])
            .write_to("c")
        )


        app = Pregel(
            nodes={"node1": node1, "node2": node2},
            channels={
                "a": EphemeralValue(str),
                "b": LastValue(str),
                "c": EphemeralValue(str),
            },
            input_channels=["a"],
            output_channels=["b", "c"],
        )

        app.invoke({"a": "foo"})
        ```

        ```con
        {'b': 'foofoo', 'c': 'foofoofoofoo'}
        ```

    Example: Using a Topic channel
        ```python
        from langgraph.channels import LastValue, EphemeralValue, Topic
        from langgraph.pregel import Pregel, NodeBuilder

        node1 = (
            NodeBuilder().subscribe_only("a")
            .do(lambda x: x + x)
            .write_to("b", "c")
        )

        node2 = (
            NodeBuilder().subscribe_only("b")
            .do(lambda x: x + x)
            .write_to("c")
        )


        app = Pregel(
            nodes={"node1": node1, "node2": node2},
            channels={
                "a": EphemeralValue(str),
                "b": EphemeralValue(str),
                "c": Topic(str, accumulate=True),
            },
            input_channels=["a"],
            output_channels=["c"],
        )

        app.invoke({"a": "foo"})
        ```

        ```pycon
        {"c": ["foofoo", "foofoofoofoo"]}
        ```

    Example: Using a `BinaryOperatorAggregate` channel
        ```python
        from langgraph.channels import EphemeralValue, BinaryOperatorAggregate
        from langgraph.pregel import Pregel, NodeBuilder


        node1 = (
            NodeBuilder().subscribe_only("a")
            .do(lambda x: x + x)
            .write_to("b", "c")
        )

        node2 = (
            NodeBuilder().subscribe_only("b")
            .do(lambda x: x + x)
            .write_to("c")
        )


        def reducer(current, update):
            if current:
                return current + " | " + update
            else:
                return update


        app = Pregel(
            nodes={"node1": node1, "node2": node2},
            channels={
                "a": EphemeralValue(str),
                "b": EphemeralValue(str),
                "c": BinaryOperatorAggregate(str, operator=reducer),
            },
            input_channels=["a"],
            output_channels=["c"],
        )

        app.invoke({"a": "foo"})
        ```

        ```con
        {'c': 'foofoo | foofoofoofoo'}
        ```

    Example: Introducing a cycle
        This example demonstrates how to introduce a cycle in the graph, by having
        a chain write to a channel it subscribes to.

        Execution will continue until a `None` value is written to the channel.

        ```python
        from langgraph.channels import EphemeralValue
        from langgraph.pregel import Pregel, NodeBuilder, ChannelWriteEntry

        example_node = (
            NodeBuilder()
            .subscribe_only("value")
            .do(lambda x: x + x if len(x) < 10 else None)
            .write_to(ChannelWriteEntry(channel="value", skip_none=True))
        )

        app = Pregel(
            nodes={"example_node": example_node},
            channels={
                "value": EphemeralValue(str),
            },
            input_channels=["value"],
            output_channels=["value"],
        )

        app.invoke({"value": "a"})
        ```

        ```con
        {'value': 'aaaaaaaaaaaaaaaa'}
        ```
    údict[str, PregelNode]Únodesz)dict[str, BaseChannel | ManagedValueSpec]rÊ   Úvaluesr¡   r  FrË   Ústream_eagerústr | Sequence[str]Úoutput_channelsNústr | Sequence[str] | NoneÚstream_channelsúAll | Sequence[str]Úinterrupt_after_nodesÚinterrupt_before_nodesÚinput_channelsúfloat | NoneÚstep_timeoutÚdebugr™   ÚcheckpointerúBaseStore | NoneÚstoreúBaseCache | NoneÚcacher  zSequence[RetryPolicy]rþ   r¸   rÿ   útype[ContextT] | NoneÚcontext_schemaúRunnableConfig | NoneÚconfigÚ	LangGraphrÃ   rÕ   úMapping[str, Sequence[str]]Útrigger_to_nodeszMapping[str, str]Únode_error_handler_mapT)Úauto_validater  r/  r3  r5  r6  r9  r:  r;  r=  r?  rþ   rÿ   rA  rC  rF  rG  rÕ   Ústream_transformersú#dict[str, PregelNode | NodeBuilder]ú0dict[str, BaseChannel | ManagedValueSpec] | NonerH  úbool | Noneú#RetryPolicy | Sequence[RetryPolicy]ú"Mapping[str, Sequence[str]] | NoneúMapping[str, str] | NonerI  r  Údeprecated_kwargsúUnpack[DeprecatedKwargs]r¹   rº   c               óè  — |                      dt          ¦  «        x}t          ur>t          j        dt          d¬¦  «         |€ t          t          t                   |¦  «        }t          |¦  «        }d„ | 	                    ¦   «         D ¦   «         | _
        |pi | _        t          | j        v r=t          | j        t                   t          ¦  «        st          dt          › d�¦  «        ‚t          t           d¬	¦  «        | j        t          <   || _        || _        || _        || _        || _        |	| _        |
| _        || _        |�|nt3          ¦   «         | _        || _        || _        || _        t          |t<          ¦  «        r|fn|| _        || _         || _!        || _"        |pi | _#        |pi | _$        || _%        tM          |pd
¦  «        | _'        d | _(        |r|  )                    ¦   «          d S d S )NÚconfig_typezU`config_type` is deprecated and will be removed. Please use `context_schema` instead.é   ©ÚcategoryÚ
stacklevelc                ól   — i | ]1\  }}|t          |t          ¦  «        r|                     ¦   «         n|“Œ2S r  )rÍ   r«   r   ræ   s      r¿   ú
<dictcomp>z#Pregel.__init__.<locals>.<dictcomp>   sF   € ð 
ð 
ð 
ÙBFÀ!ÀQˆA�J q­+Ñ6Ô6Ð=ˆq�wŠw‰yŒyˆy¸Að
ð 
ð 
rÁ   z	Channel 'z.' is reserved and cannot be used in the graph.F)Ú
accumulater  )*ÚgetrU   ÚwarningsÚwarnr©   r   r'  r¥   r¤   ré   r-  rÊ   rL   rÍ   r\   rÅ   rž   r  r/  r1  r3  r5  r6  r7  r9  r   r:  r;  r=  r?  r{   rþ   rÿ   rA  rC  rF  rG  rÕ   ÚtuplerI  Ú_serde_allowlistÚvalidate)r¾   r-  rÊ   rH  r  r/  r1  r3  r5  r6  r7  r9  r:  r;  r=  r?  rþ   rÿ   rA  rC  rF  rG  rÕ   rI  rP  rS  s                             r¿   rÀ   zPregel.__init__ö  s  € ð: -×0Ò0°ÅÑHÔHÐHˆKÝðð õ ŒMØgÝ4Øðñ ô ð ð Ð%Ý!%¥d­8¤n°kÑ!BÔ!B�å0°Ñ>Ô>ˆð
ð 
ØJOÏ+Ê+É-Ì-ð
ñ 
ô 
ˆŒ
ð !˜ BˆŒÝ�D”MÐ!Ð!­*°T´]Å5Ô5IÍ5Ñ*QÔ*QÐ!ÝØQ�EÐQÐQÐQñô ð õ $)­¸%Ð#@Ñ#@Ô#@ˆDŒM�%Ñ Ø&ˆÔØ(ˆÔØ.ˆÔØ.ˆÔØ%:ˆÔ"Ø&<ˆÔ#Ø,ˆÔØ(ˆÔØ#Ð/�U�UµY±[´[ˆŒ
Ø(ˆÔØˆŒ
ØˆŒ
å)¨,½ÑDÔDÐVˆ\ˆOˆOÈ,ð 	Ôð )ˆÔØ,ˆÔØˆŒØ 0Ð 6°BˆÔØ&<Ð&BÀˆÔ#ØˆŒ	ÝQVØÐ% 2ñR
ô R
ˆÔ ð >BˆÔØð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	rÁ   úBaseCheckpointSaver | Nonec                óR   — t           j        s|S t          j        || j        ¦  «        S r¼   )r.   ÚSTRICT_MSGPACK_ENABLEDÚapply_checkpointer_allowlistr_  )r¾   r;  s     r¿   Ú_apply_checkpointer_allowlistz$Pregel._apply_checkpointer_allowlistF  s+   € õ Ô,ð 	 ØÐÝÔ2°<ÀÔAVÑWÔWÐWrÁ   ©Úxrayrg  ú
int | boolr!   c               óî   ‡‡— ‰r"ˆˆfd„|                       ¦   «         D ¦   «         }ni }t          t          | j        ‰¦  «        | j        | j        | j        | j        | j        | j	        | j
        |¬¦	  «	        S )ú:Return a drawable representation of the computation graph.c           
     ó†   •— i | ]=\  }}||                      ‰t          ‰t          ¦  «        s‰d k    r‰n‰dz
  ¬¦  «        “Œ>S )r   é   rf  )Ú	get_graphrÍ   rË   )rÞ   rç   rè   rC  rg  s      €€r¿   rY  z$Pregel.get_graph.<locals>.<dictcomp>S  sj   ø€ ð ð ð ñ
 �A�qð	 �1—;’;ØÝ!+¨Dµ$Ñ!7Ô!7ÐR¸4À1º9¸9˜˜È$ÐQRÉ(ð ñ ô ðð ð rÁ   ©r-  r  r7  r5  r6  rF  r;  r	  )Úget_subgraphsrr   r0   rC  r-  rÊ   r7  r5  r6  rF  r;  )r¾   rC  rg  r	  s    `` r¿   rm  zPregel.get_graphM  s£   øø€ ð
 ð 		ðð ð ð ð ð
 !×.Ò.Ñ0Ô0ðñ ô ˆIˆIð ˆIåÝ˜$œ+ vÑ.Ô.Ø”*Ø”-ØÔ.Ø"&Ô"<Ø#'Ô#>Ø!Ô2ØÔ*Øð

ñ 

ô 

ð 
	
rÁ   c             ƒ  óŽ  ‡‡K  — ‰rpd„ |                       ¦   «         2 ¦   «         ƒ d{V —†}d„ t          |t          j        ˆˆfd„|                     ¦   «         D ¦   «         Ž ƒ d{V —†¦  «        D ¦   «         }ni }t          t          | j        ‰¦  «        | j        | j	        | j
        | j        | j        | j        | j        |¬¦	  «	        S )rj  c              “  ó,   K  — i | 3 d {V —†	 \  }}||“Œ6 S r¼   r  ræ   s      r¿   rY  z%Pregel.aget_graph.<locals>.<dictcomp>p  sR   è è € ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5Ù#˜q !��1ð5ð 5ð 5ð 5s   …Nc                ó   — i | ]\  }}||“Œ	S r  r  ræ   s      r¿   rY  z%Pregel.aget_graph.<locals>.<dictcomp>s  s.   € ð ð ð á�A�qð �1ðð ð rÁ   c              3  ó†   •K  — | ];}|                      ‰t          ‰t          ¦  «        s‰d k    r‰n‰dz
  ¬¦  «        V — Œ<dS )r   rl  rf  N)Ú
aget_graphrÍ   rË   )rÞ   ÚprC  rg  s     €€r¿   rà   z$Pregel.aget_graph.<locals>.<genexpr>x  sx   øè è € ð ð ð !"ð ŸLšLØ &å#-¨dµDÑ#9Ô#9ð&.Ø=AÀQºY¸Yð &* Tà%)¨A¡Xð	 )ñ ô ðð ð ð ð ð rÁ   rn  )Úaget_subgraphsÚzipÚasyncioÚgatherr.  rr   r0   rC  r-  rÊ   r7  r5  r6  rF  r;  )r¾   rC  rg  Ú
subpregelsr	  s    ``  r¿   rt  zPregel.aget_graphi  s@  øøè è € ð ð 	ð5ð 5Ø'+×':Ò':Ñ'<Ô'<ð5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ˆJðð åØÝ!œ.ðð ð ð ð ð &0×%6Ò%6Ñ%8Ô%8ðñ ô ð
ð 
ð 
ð 
ð 
ð 
ð 
ñô ðñ ô ˆIˆIð$ ˆIåÝ˜$œ+ vÑ.Ô.Ø”*Ø”-ØÔ.Ø"&Ô"<Ø#'Ô#>Ø!Ô2ØÔ*Øð

ñ 

ô 

ð 
	
rÁ   rÙ   r   r·   c                ón   — t          | ¦  «        |                      ¦   «                              ¦   «         dœS )z0Mime bundle used by Jupyter to display the graph)z
text/plainz	image/png)Úreprrm  Údraw_mermaid_png)r¾   rÙ   s     r¿   Ú_repr_mimebundle_zPregel._repr_mimebundle_“  s5   € õ ˜t™*œ*ØŸšÑ)Ô)×:Ò:Ñ<Ô<ð
ð 
ð 	
rÁ   rî   údict[str, Any] | Noner*   c                ó�   — d„ | j                              ¦   «         D ¦   «         }|                     |pi ¦  «          | j        di |¤ŽS )Nc                ó&   — i | ]\  }}|d k    ¯||“ŒS )Ú__orig_class__r  ræ   s      r¿   rY  zPregel.copy.<locals>.<dictcomp>›  s)   € ÐQÐQÐQ™$˜!˜Q¸1Ð@PÒ;PÐ;P��AÐ;PÐ;PÐ;PrÁ   r  )Ú__dict__ré   rî   Ú	__class__)r¾   rî   Úattrss      r¿   ÚcopyzPregel.copyš  sQ   € ØQÐQ $¤-×"5Ò"5Ñ"7Ô"7ÐQÑQÔQˆØ�Š�V�\˜rÑ"Ô"Ð"ØˆtŒ~Ð&Ð& Ð&Ð&Ð&rÁ   c                ó~   — |                       dt          | j        |t          t          |¦  «        ¦  «        i¦  «        S )z:Create a copy of the Pregel object with an updated config.rC  )r†  r0   rC  r   r   )r¾   rC  rÙ   s      r¿   Úwith_configzPregel.with_configŸ  s8   € à�yŠyØ•} T¤[°&½$½~ÈvÑ:VÔ:VÑWÔWÐXñ
ô 
ð 	
rÁ   c           
     óª  — | j                              ¦   «         D ])\  }}|j        �t          |j        p|j        |¬¦  «         Œ*t          | j         d„ | j                             ¦   «         D ¦   «         d„ | j                             ¦   «         D ¦   «         | j        | j	        | j
        | j        | j        ¦  «         t          | j         ¦  «        | _        | S )N)rÕ   c                óD   — i | ]\  }}t          |t          ¦  «        ¯||“ŒS r  ©rÍ   r[   ræ   s      r¿   rY  z#Pregel.validate.<locals>.<dictcomp>«  s-   € ÐRÐRÐR‘d�a˜µzÀ!Å[Ñ7QÔ7QÐRˆQ�ÐRÐRÐRrÁ   c                óD   — i | ]\  }}t          |t          ¦  «        °||“ŒS r  r‹  ræ   s      r¿   rY  z#Pregel.validate.<locals>.<dictcomp>¬  s-   € ÐVÐVÐV‘d�a˜½:ÀaÍÑ;UÔ;UÐVˆQ�ÐVÐVÐVrÁ   )r-  ré   rö   r   rÓ   rý   r€   rÊ   r7  r1  r3  r5  r6  Ú_trigger_to_nodesrF  )r¾   rÕ   rÓ   s      r¿   r`  zPregel.validate¥  sÖ   € Øœ*×*Ò*Ñ,Ô,ð 	Oð 	O‰JˆD�$ØŒ|Ð'Ý*¨4¬9Ð+B¸¼
ÈÐNÑNÔNÐNøÝØŒJØRÐR˜dœm×1Ò1Ñ3Ô3ÐRÑRÔRØVÐV˜dœm×1Ò1Ñ3Ô3ÐVÑVÔVØÔØÔ ØÔ ØÔ&ØÔ'ñ		
ô 		
ð 		
õ !2°$´*Ñ =Ô =ˆÔØˆrÁ   ú\`config_schema` is deprecated. Use `get_context_jsonschema` for the relevant schema instead.©rV  ©Úincluder‘  úSequence[str] | Noneútype[BaseModel]c               ó  ‡— t          j        dt          d¬¦  «         ‰pg Ši | j        rd| j        d fini ¥ˆfd„t	          t
          ¦  «                             ¦   «         D ¦   «         ¥}t          |                      d¦  «        |¬¦  «        S )NrŽ  rT  rU  Úconfigurablec                ó<   •— i | ]\  }}|d „ ‰D ¦   «         v ¯||df“ŒS )c                ó   — g | ]
}|d k    ¯|‘ŒS )r•  r  )rÞ   Úis     r¿   r  z3Pregel.config_schema.<locals>.<dictcomp>.<listcomp>Ë  s"   € Ð!LÐ!LÐ!L¨¸¸^Ò8KÐ8K !Ð8KÐ8KÐ8KrÁ   Nr  )rÞ   Ú
field_nameÚ
field_typer‘  s      €r¿   rY  z(Pregel.config_schema.<locals>.<dictcomp>È  sH   ø€ ð ð ð á*�J 
ØÐ!LÐ!L¨WÐ!LÑ!LÔ!LÐLÐLð ˜Z¨Ð.àLÐLÐLrÁ   ÚConfig©Úfield_definitions)	r\  r]  r©   rA  r   r   ré   rM   Úget_name)r¾   r‘  Úfieldss    ` r¿   Úconfig_schemazPregel.config_schema¶  sÀ   ø€ õ
 	ŒØjÝ0Øð	
ñ 	
ô 	
ð 	
ð �-˜Rˆð
ð Ô&ð� $Ô"5°tÐ!<Ð=Ð=àð	
ðð ð ð å.<½^Ñ.LÔ.L×.RÒ.RÑ.TÔ.Tðñ ô ð
ˆõ ˜DŸMšM¨(Ñ3Ô3ÀvÐNÑNÔNÐNrÁ   úL`get_config_jsonschema` is deprecated. Use `get_context_jsonschema` instead.c               ó  — t          j        dt          d¬¦  «         t          j        ¦   «         5  t          j        dt          ¬¦  «         |                      |¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         S )Nr¡  rT  rU  Úignorer�  r�  )r\  r]  r©   Úcatch_warningsÚfilterwarningsr   Úmodel_json_schema)r¾   r‘  Úschemas      r¿   Úget_config_jsonschemazPregel.get_config_jsonschemaÐ  sÍ   € õ 	ŒØZÝ0Øð	
ñ 	
ô 	
ð 	
õ Ô$Ñ&Ô&ð 	9ð 	9ÝÔ# HÕ7RÐSÑSÔSÐSØ×'Ò'°Ð'Ñ8Ô8ˆFð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð ×'Ò'Ñ)Ô)Ð)s   °2A.Á.A2Á5A2c                ó,  — | j         x}€d S t          |¦  «        r)t          |t          ¦  «        r|                     ¦   «         S t          |¦  «        st          |¦  «        r!t          |¦  «                             ¦   «         S t          d|› d�¦  «        ‚)NzInvalid context schema type: z.. Must be a BaseModel, TypedDict or dataclass.)
rA  r   Ú
issubclassr(   r¦  r-   r   r)   Újson_schemarÅ   )r¾   rA  s     r¿   Úget_context_jsonschemazPregel.get_context_jsonschemaâ  s¡   € Ø"Ô1Ð1ˆNÐ:Ø�4å�>Ñ"Ô"ð 	¥z°.Å)Ñ'LÔ'Lð 	Ø!×3Ò3Ñ5Ô5Ð5Ý˜.Ñ)Ô)ð 	­\¸.Ñ-IÔ-Ið 	Ý˜~Ñ.Ô.×:Ò:Ñ<Ô<Ð<åØn°ÐnÐnÐnñô ð rÁ   c                óš   — t          | j        t          ¦  «        r.| j        | j                 }t          |t          ¦  «        r	|j        S d S d S r¼   )rÍ   r7  rÃ   rÊ   r[   Ú
UpdateTyperÇ   s     r¿   Ú	InputTypezPregel.InputTypeï  sU   € å�dÔ)­3Ñ/Ô/ð 	*Ø”m DÔ$7Ô8ˆGÝ˜'¥;Ñ/Ô/ð *ØÔ)Ð)ð	*ð 	*ð*ð *rÁ   c                óF  •‡ ‡— t          ‰ j        |¦  «        }t          ‰ j        t          ¦  «        r!t          ¦   «                              |¦  «        S t          ‰                      d¦  «        ˆˆ fd„‰ j        p‰ j	         
                    ¦   «         D ¦   «         ¬¦  «        S )Nr   c                ól   •— i | ]0}‰j         |         xŠ¯t          ‰t          ¦  «        ¯&|‰j        d f“Œ1S r¼   )rÊ   rÍ   r[   r®  ©rÞ   rç   rß   r¾   s     €€r¿   rY  z+Pregel.get_input_schema.<locals>.<dictcomp>ý  sX   ø€ ð #ð #ð #àØ!œ]¨1Ô-Ð-˜ð#õ 4>¸aÅÑ3MÔ3Mð#Ø˜œ dÐ+ð#ð #ð #rÁ   rœ  )r0   rC  rÍ   r7  rÃ   ÚsuperÚget_input_schemarM   rž  rÊ   Úkeys©r¾   rC  rß   r„  s   ` @€r¿   r´  zPregel.get_input_schemaö  sª   øøø€ Ý˜tœ{¨FÑ3Ô3ˆÝ�dÔ)­3Ñ/Ô/ð 
	Ý‘7”7×+Ò+¨FÑ3Ô3Ð3åØ—’˜gÑ&Ô&ð#ð #ð #ð #ð #à!Ô0ÐH°D´M×4FÒ4FÑ4HÔ4Hð#ñ #ô #ðñ ô ð rÁ   c                óT   — |                       |¦  «        }|                     ¦   «         S r¼   )r´  r¦  ©r¾   rC  r§  s      r¿   Úget_input_jsonschemazPregel.get_input_jsonschema  s)   € ð ×&Ò& vÑ.Ô.ˆØ×'Ò'Ñ)Ô)Ð)rÁ   c                óš   — t          | j        t          ¦  «        r.| j        | j                 }t          |t          ¦  «        r	|j        S d S d S r¼   )rÍ   r1  rÃ   rÊ   r[   Ú	ValueTyperÇ   s     r¿   Ú
OutputTypezPregel.OutputType
  sU   € å�dÔ*­CÑ0Ô0ð 	)Ø”m DÔ$8Ô9ˆGÝ˜'¥;Ñ/Ô/ð )ØÔ(Ð(ð	)ð 	)ð)ð )rÁ   c                ó  •‡ ‡— t          ‰ j        |¦  «        }t          ‰ j        t          ¦  «        r!t          ¦   «                              |¦  «        S t          ‰                      d¦  «        ˆˆ fd„‰ j        D ¦   «         ¬¦  «        S )Nr   c                ól   •— i | ]0}‰j         |         xŠ¯t          ‰t          ¦  «        ¯&|‰j        d f“Œ1S r¼   )rÊ   rÍ   r[   r»  r²  s     €€r¿   rY  z,Pregel.get_output_schema.<locals>.<dictcomp>  sX   ø€ ð #ð #ð #àØ!œ]¨1Ô-Ð-˜ð#õ 4>¸aÅÑ3MÔ3Mð#Ø˜œ TÐ*ð#ð #ð #rÁ   rœ  )	r0   rC  rÍ   r1  rÃ   r³  Úget_output_schemarM   rž  r¶  s   ` @€r¿   r¿  zPregel.get_output_schema  s™   øøø€ õ ˜tœ{¨FÑ3Ô3ˆÝ�dÔ*­CÑ0Ô0ð 
	Ý‘7”7×,Ò,¨VÑ4Ô4Ð4åØ—’˜hÑ'Ô'ð#ð #ð #ð #ð #à!Ô1ð#ñ #ô #ðñ ô ð rÁ   c                óT   — |                       |¦  «        }|                     ¦   «         S r¼   )r¿  r¦  r¸  s      r¿   Úget_output_jsonschemazPregel.get_output_jsonschema!  s)   € ð ×'Ò'¨Ñ/Ô/ˆØ×'Ò'Ñ)Ô)Ð)rÁ   úSequence[str]c                óD   — | j         }t          |t          ¦  «        r|gn|S r¼   )Ústream_channels_asisrÍ   rÃ   )r¾   r3  s     r¿   Ústream_channels_listzPregel.stream_channels_list'  s)   € àÔ3ˆå!+¨O½SÑ!AÔ!AÐVˆ_ÐÐÀð	
rÁ   c                ó8   ‡ — ‰ j         pˆ fd„‰ j        D ¦   «         S )Nc                óT   •— g | ]$}t          ‰j        |         t          ¦  «        ¯"|‘Œ%S r  )rÍ   rÊ   r[   )rÞ   rç   r¾   s     €r¿   r  z/Pregel.stream_channels_asis.<locals>.<listcomp>0  s?   ø€ ð (
ð (
ð (
Ø­
°4´=ÀÔ3CÅ[Ñ(QÔ(Qð(
Øð(
ð (
ð (
rÁ   )r3  rÊ   r½   s   `r¿   rÄ  zPregel.stream_channels_asis.  s;   ø€ àÔ#ð 
ð (
ð (
ð (
ð (
Ø”}ð(
ñ (
ô (
ð 	
rÁ   ©Ú	namespaceÚrecurserÉ  ú
str | NonerÊ  ú$Iterator[tuple[str, PregelProtocol]]c             #  ó�  ‡K  — | j                              ¦   «         D ]¨\  Š}|�|                     ‰¦  «        sŒ|j        r|j        d         nd}|rs‰|k    r	‰|fV —  dS |€‰|fV — |rZt	          |t
          ¦  «        rE|�|t          ‰¦  «        dz   d…         }ˆfd„|                     ||¬¦  «        D ¦   «         E d{V —† Œ©dS )áO  Get the subgraphs of the graph.

        Args:
            namespace: The namespace to filter the subgraphs by.
            recurse: Whether to recurse into the subgraphs.
                If `False`, only the immediate subgraphs will be returned.

        Returns:
            An iterator of the `(namespace, subgraph)` pairs.
        Nr   rl  c              3  ó<   •K  — | ]\  }}‰› t           › |› �|fV — Œd S r¼   )rI   )rÞ   ÚnÚsrÕ   s      €r¿   rà   z'Pregel.get_subgraphs.<locals>.<genexpr>T  sP   øè è € ð  ð  á ˜A˜qð !Ð-¥&Ð-¨!Ð-Ð-¨qÐ1ð ð  ð  ð  ð  ð  rÁ   rÈ  )r-  ré   Ú
startswithr	  rÍ   r¬   Úlenro  )r¾   rÉ  rÊ  rÓ   ÚgraphrÕ   s        @r¿   ro  zPregel.get_subgraphs4  sJ  øè è € ð œ*×*Ò*Ñ,Ô,ð 	ð 	‰JˆD�$àÐ$Ø ×+Ò+¨DÑ1Ô1ð Øð *.¬ÐA�D”N 1Ô%Ð%¸TˆEð ð Ø˜9Ò$Ð$Ø ˜+Ð%Ð%Ð%Ø�F�FØÐ$Ø ˜+Ð%Ð%Ð%Øð �z¨%µÑ8Ô8ð Ø Ð,Ø$-­c°$©i¬i¸!©m¨o¨oÔ$>˜	ð ð  ð  ð  à$)×$7Ò$7Ø&/¸ð %8ñ %ô %ð ñ  ô  ð ð ð ð ð ð ð øð'	ð 	rÁ   ú)AsyncIterator[tuple[str, PregelProtocol]]c              óR   K  — |                       ||¬¦  «        D ]\  }}||fW V — ŒdS )rÎ  rÈ  N)ro  )r¾   rÉ  rÊ  rÕ   rÓ   s        r¿   rv  zPregel.aget_subgraphs[  sN   è è € ð ×,Ò,°yÈ'Ð,ÑRÔRð 	ð 	‰JˆD�$Ø˜�*ÐÐÐÐÐð	ð 	rÁ   úCallable[[Any], Any] | NoneÚ_output_mapperÚ_state_mapperÚ
checkpointr%   c                ó  — |d         dk     rq|                      d¦  «        r^|                     d¦  «        }||d         t          <   t          |d                              ¦   «         ¦  «        |d         t          <   dS dS dS )z1Migrate a saved checkpoint to new channel layout.rè   é   Úpending_sendsÚchannel_valuesÚchannel_versionsN)r[  ÚpoprL   Úmaxr.  )r¾   rÚ  rÝ  s      r¿   Ú_migrate_checkpointzPregel._migrate_checkpointp  s†   € à�cŒ?˜QÒÐ :§>¢>°/Ñ#BÔ#BÐØ(2¯ª°Ñ(GÔ(GˆMØ2?ˆJÐ'Ô(­Ñ/Ý47ØÐ-Ô.×5Ò5Ñ7Ô7ñ5ô 5ˆJÐ)Ô*­5Ñ1Ð1Ð1ð ÐÐÐrÁ   r   ÚsavedúCheckpointTuple | NoneÚapply_pending_writesrŸ   c                ó„  — |st          i d|d d d dd¬¦  «        S |                      |j        ¦  «         |j                             dd¦  «        dz   }|dz   }t          | j        |j        t          | j        t          ¦  «        r| j        nd |j
        ¬¦  «        \  }}t          |j        |j        pg | j        |||j
        ||d| j        t          | j        t          ¦  «        r| j        nd d ¬	¦  «        }	t          |                      ¦   «         ¦  «        }
|j
        t"                                        t$          d
¦  «        }i }|	                     ¦   «         D ]À}|j        |
vrŒ|j        › t*          › |j        › �}|r|› t.          › |› �}|s3t"          d|j
        t"                   d         t$          |ii}|||j        <   Œgt"          t0          |d|j
        t"                   d         t$          |ii}|
|j                                      |d¬¦  «        ||j        <   ŒÁd„ |j        pg D ¦   «         x}r3t5          |j        |t7          dt8          |g ¦  «        gd | j        ¦  «         |rŠ|j        rƒ|j        D ]>\  }}}|t<          t>          fv rŒ||	vrŒ|	|         j          !                    ||f¦  «         Œ?d„ |	                     ¦   «         D ¦   «         x}rt5          |j        ||d | j        ¦  «         tE          |	                     ¦   «         |j        || j#        ¦  «        }t          tI          || j#        ¦  «        tK          d„ |	                     ¦   «         D ¦   «         ¦  «        tM          |j
        |j        ¦  «        |j        |j        d         tM          |j'        |j        ¦  «        |tK          d„ |D ¦   «         ¦  «        ¦  «        S )Nr  ©r.  ÚnextrC  rì   Ú
created_atÚparent_configÚtasksÚ
interruptsÚstepéÿÿÿÿrl  rT  ©ÚsaverrC  T©Úfor_executionr=  r;  ÚmanagerÚ Ú	thread_id©r	  c                óD   — g | ]}|d          t           k    ¯|dd…         ‘ŒS ©r   rl  N©rJ   ©rÞ   Úws     r¿   r  z2Pregel._prepare_state_snapshot.<locals>.<listcomp>Í  ó5   € ð 
ð 
ð 
Ø¸¸1¼ÅÒ9MÐ9MˆAˆaˆbˆbŒEÐ9MÐ9MÐ9MrÁ   c                ó    — g | ]}|j         ¯	|‘ŒS r  ©Úwrites©rÞ   Úts     r¿   r  z2Pregel._prepare_state_snapshot.<locals>.<listcomp>Þ  ó   € ÐDÐDÐD˜q¸1¼8ÐD˜ÐDÐDÐDrÁ   c              3  ó2   K  — | ]}|j         °	|j        V — Œd S r¼   ©rÿ  rÕ   r   s     r¿   rà   z1Pregel._prepare_state_snapshot.<locals>.<genexpr>ë  ó+   è è € ÐFÐF˜Q¸Q¼XÐF�!”&ÐFÐFÐFÐFÐFÐFrÁ   Útsc                ó&   — g | ]}|j         D ]}|‘ŒŒS r  ©rì  ©rÞ   Útaskr˜  s      r¿   r  z2Pregel._prepare_state_snapshot.<locals>.<listcomp>ñ  ó'   € ÐLÐLÐL˜¸D¼OÐLÐL°q�1ÐLÐLÐLÐLrÁ   )(rŸ   râ  rÚ  rì   r[  rl   rÊ   rÍ   r;  r$   rC  ri   Úpending_writesr-  r=  Údictro  r6   r9   r.  rÕ   rH   ÚidrI   r:   Ú	get_staterg   re   rF   rF  rE   rG   rÿ  rÆ   r†   rÄ  rt   r^  r1   rê  ©r¾   rC  rã  rÊ  rå  rí  ÚstoprÊ   ÚmanagedÚ
next_tasksr	  Ú	parent_nsÚtask_statesr
  Útask_nsÚnull_writesÚtidrç   rè   rë  Útasks_with_writess                        r¿   Ú_prepare_state_snapshotzPregel._prepare_state_snapshoty  sY  € ð ð 
	Ý ØØØØØØ"ØØð	ñ 	ô 	ð 	ð 	× Ò  Ô!1Ñ2Ô2Ð2àŒ~×!Ò! &¨"Ñ-Ô-°Ñ1ˆØ�a‰xˆÝ4ØŒMØÔå˜$Ô+Õ-@ÑAÔAð�$Ô#Ð#àØ”<ð
ñ 
ô 
Ñˆ�'õ (ØÔØÔ Ð& BØŒJØØØŒLØØØØ”*õ ˜dÔ/Õ1DÑEÔEð�Ô!Ð!ààð!
ñ 
ô 
ˆ
õ& ˜×+Ò+Ñ-Ô-Ñ.Ô.ˆ	Ø”L¥Ô&×*Ò*Õ+CÀRÑHÔHˆ	ØACˆØ×%Ò%Ñ'Ô'ð 	ð 	ˆDØŒy 	Ð)Ð)ØàœÐ5¥FÐ5¨D¬GÐ5Ð5ˆGØð :Ø&Ð9­Ð9°Ð9Ð9�Øð õ Ø# U¤\µ$Ô%7¸Ô%DÝ0°'ðð�ð (.�˜DœGÑ$Ð$õ Ý/°Ø# U¤\µ$Ô%7¸Ô%DÝ0°'ðð�ð (1°´Ô';×'EÒ'EØ dð (Fñ (ô (�˜DœGÑ$Ð$ð
ð 
Ø Ô/Ð5°2ð
ñ 
ô 
ð 
ˆ;ð 		õ ØÔ ØÝ! "¥e¨[¸"Ñ=Ô=Ð>ØØÔ%ñô ð ð  ð 
	 EÔ$8ð 
	Ø"Ô1ð 6ð 6‘	��Q˜Ø�¥	Ð*Ð*Ð*ØØ˜jÐ(Ð(ØØ˜3”Ô&×-Ò-¨q°!¨fÑ5Ô5Ð5Ð5ØDÐD J×$5Ò$5Ñ$7Ô$7ÐDÑDÔDÐDˆuð ÝØÔ$ h°°t¸TÔ=Rñô ð õ +Ø×ÒÑÔØÔ ØØÔ%ñ	
ô 
Ðõ Ý˜( DÔ$=Ñ>Ô>ÝÐFÐF *×"3Ò"3Ñ"5Ô"5ÐFÑFÔFÑFÔFÝ  ¤¨u¬~Ñ>Ô>ØŒNØÔ˜TÔ"Ý  Ô!4°e´nÑEÔEØÝÐLÐLÐ!2ÐLÑLÔLÑMÔMñ	
ô 	
ð 		
rÁ   c              ƒ  ó¦  K  — |st          i d|d d d dd¬¦  «        S |                      |j        ¦  «         |j                             dd¦  «        dz   }|dz   }t          | j        |j        t          | j        t          ¦  «        r| j        nd |j
        ¬¦  «        ƒ d {V —†\  }}t          |j        |j        pg | j        |||j
        ||d| j        t          | j        t          ¦  «        r| j        nd d ¬	¦  «        }	d
„ |                      ¦   «         2 ¦   «         ƒ d {V —†}
|j
        t                                         t"          d¦  «        }i }|	                     ¦   «         D ]Æ}|j        |
vrŒ|j        › t(          › |j        › �}|r|› t,          › |› �}|s3t           d|j
        t                    d         t"          |ii}|||j        <   Œgt           t.          |d|j
        t                    d         t"          |ii}|
|j                                      |d¬¦  «        ƒ d {V —†||j        <   ŒÇd„ |j        pg D ¦   «         x}r3t3          |j        |t5          dt6          |g ¦  «        gd | j        ¦  «         |rŠ|j        rƒ|j        D ]>\  }}}|t:          t<          fv rŒ||	vrŒ|	|         j                              ||f¦  «         Œ?d„ |	                     ¦   «         D ¦   «         x}rt3          |j        ||d | j        ¦  «         tC          |	                     ¦   «         |j        || j"        ¦  «        }t          tG          || j"        ¦  «        tI          d„ |	                     ¦   «         D ¦   «         ¦  «        tK          |j
        |j        ¦  «        |j        |j        d         tK          |j&        |j        ¦  «        |tI          d„ |D ¦   «         ¦  «        ¦  «        S )Nr  rç  rí  rî  rl  rT  rï  Trñ  c              “  ó*   K  — i | 3 d {V —†\  }}||“Œ6 S r¼   r  )rÞ   rÐ  Úgs      r¿   rY  z3Pregel._aprepare_state_snapshot.<locals>.<dictcomp>(  s4   è è € ÐBÐBÐBÐBÐBÐBÐBÐB¡D A q�Q˜ÐBÐBÐBÐBs   …rô  rõ  rö  c                óD   — g | ]}|d          t           k    ¯|dd…         ‘ŒS rø  rù  rú  s     r¿   r  z3Pregel._aprepare_state_snapshot.<locals>.<listcomp>H  rü  rÁ   c                ó    — g | ]}|j         ¯	|‘ŒS r  rþ  r   s     r¿   r  z3Pregel._aprepare_state_snapshot.<locals>.<listcomp>Y  r  rÁ   c              3  ó2   K  — | ]}|j         °	|j        V — Œd S r¼   r  r   s     r¿   rà   z2Pregel._aprepare_state_snapshot.<locals>.<genexpr>g  r  rÁ   r  c                ó&   — g | ]}|j         D ]}|‘ŒŒS r  r  r	  s      r¿   r  z3Pregel._aprepare_state_snapshot.<locals>.<listcomp>m  r  rÁ   )'rŸ   râ  rÚ  rì   r[  rk   rÊ   rÍ   r;  r$   rC  ri   r  r-  r=  rv  r6   r9   r.  rÕ   rH   r  rI   r:   Ú
aget_staterg   re   rF   rF  rE   rG   rÿ  rÆ   r†   rÄ  rt   r^  r1   rê  r  s                        r¿   Ú_aprepare_state_snapshotzPregel._aprepare_state_snapshotô  s²  è è € ð ð 
	Ý ØØØØØØ"ØØð	ñ 	ô 	ð 	ð 	× Ò  Ô!1Ñ2Ô2Ð2àŒ~×!Ò! &¨"Ñ-Ô-°Ñ1ˆØ�a‰xˆÝ";ØŒMØÔå˜$Ô+Õ-@ÑAÔAð�$Ô#Ð#àØ”<ð#
ñ #
ô #
ð 
ð 
ð 
ð 
ð 
ð 
Ñˆ�'õ (ØÔØÔ Ð& BØŒJØØØŒLØØØØ”*õ ˜dÔ/Õ1DÑEÔEð�Ô!Ð!ààð!
ñ 
ô 
ˆ
ð& CÐB¨D×,?Ò,?Ñ,AÔ,AÐBÑBÔBÐBÐBÐBÐBÐBÐBˆ	Ø”L¥Ô&×*Ò*Õ+CÀRÑHÔHˆ	ØACˆØ×%Ò%Ñ'Ô'ð 	ð 	ˆDØŒy 	Ð)Ð)ØàœÐ5¥FÐ5¨D¬GÐ5Ð5ˆGØð :Ø&Ð9­Ð9°Ð9Ð9�Øð õ Ø# U¤\µ$Ô%7¸Ô%DÝ0°'ðð�ð (.�˜DœGÑ$Ð$õ Ý/°Ø# U¤\µ$Ô%7¸Ô%DÝ0°'ðð�ð .7°t´yÔ-A×-LÒ-LØ dð .Mñ .ô .ð (ð (ð (ð (ð (ð (�˜DœGÑ$Ð$ð
ð 
Ø Ô/Ð5°2ð
ñ 
ô 
ð 
ˆ;ð 		õ ØÔ ØÝ! "¥e¨[¸"Ñ=Ô=Ð>ØØÔ%ñô ð ð  ð 
	 EÔ$8ð 
	Ø"Ô1ð 6ð 6‘	��Q˜Ø�¥	Ð*Ð*Ð*ØØ˜jÐ(Ð(ØØ˜3”Ô&×-Ò-¨q°!¨fÑ5Ô5Ð5Ð5ØDÐD J×$5Ò$5Ñ$7Ô$7ÐDÑDÔDÐDˆuð ÝØÔ$ h°°t¸TÔ=Rñô ð õ +Ø×ÒÑÔØÔ ØØÔ%ñ	
ô 
Ðõ Ý˜( DÔ$=Ñ>Ô>ÝÐFÐF *×"3Ò"3Ñ"5Ô"5ÐFÑFÔFÑFÔFÝ  ¤¨u¬~Ñ>Ô>ØŒNØÔ˜TÔ"Ý  Ô!4°e´nÑEÔEØÝÐLÐLÐ!2ÐLÑLÔLÑMÔMñ	
ô 	
ð 		
rÁ   rö  r	  c               óX  — t          |¦  «        t                                        t          | j        ¦  «        }t          |t          ¦  «        r|                      |¦  «        }|st          d¦  «        ‚|t                                        t          d¦  «        x}r€t          |t                   vrlt          |¦  «        }|                      |d¬¦  «        D ]2\  }}|                     t          |t          |i¦  «        |¬¦  «        c S t          d|› d�¦  «        ‚| j        rt          | j        |¦  «        n|}| j        du rVt!          t"          |t                   t                   ¦  «        }t          |t          t          t          |¦  «        ii¦  «        }|t                   t$                   }	t          |	t"          ¦  «        s"t#          |	¦  «        |t                   t$          <   |                     |¦  «        }
|                      ||
|r|ndt*          |t                   v¬	¦  «        S )
ú#Get the current state of the graph.úNo checkpointer setrô  TrÈ  rö  ú	Subgraph ú
 not foundN©rÊ  rå  )r/   r6   r[  r:   r;  rÍ   r$   re  rÅ   r9   r4   ro  r  r3   rC  r0   r   rÃ   rD   Ú	get_tupler  r8   ©r¾   rC  r	  r;  Úcheckpoint_nsÚrecastÚ_ÚpregelÚnsrõ  rã  s              r¿   r  zPregel.get_statep  s$  € õ 4AÀÑ3HÔ3HÍÔ3N×3RÒ3RÝ# TÔ%6ñ4
ô 4
ˆõ �lÕ$7Ñ8Ô8ð 	LØ×=Ò=¸lÑKÔKˆLØð 	4ÝÐ2Ñ3Ô3Ð3ð $¥Dœ\×-Ò-Õ.FÈÑKÔKÐKˆMð	Aå%¨VµD¬\Ð9Ð9å)¨-Ñ8Ô8ˆFà!×/Ò/¸&È$Ð/ÑOÔOð Að A‘	��6Ø×'Ò'Ý& vÕ0GÈÐ/VÑWÔWØ'ð (ñ ô ð ð ð õ
 !Ð!?¨VÐ!?Ð!?Ð!?Ñ@Ô@Ð@à7;´{ÐN•˜tœ{¨FÑ3Ô3Ð3ÈˆØÔ Ð$Ð$Ý•c˜6¥$œ<Õ(@ÔAÑBÔBˆBÝ"Ø�Õ 8Õ:NÈrÑ:RÔ:RÐSÐTñô ˆFð �4”LÕ!5Ô6ˆ	Ý˜)¥SÑ)Ô)ð 	@Ý14°Y±´ˆF•4ŒLÕ-Ñ.à×&Ò& vÑ.Ô.ˆØ×+Ò+ØØØ$-Ð7�L�L°4Ý!9ÀÍÄÐ!Mð	 ,ñ 
ô 
ð 	
rÁ   c             ƒ  óŒ  K  — t          |¦  «        t                                        t          | j        ¦  «        }t          |t          ¦  «        r|                      |¦  «        }|st          d¦  «        ‚|t                                        t          d¦  «        x}rŒt          |t                   vrxt          |¦  «        }|                      |d¬¦  «        2 3 d{V —†\  }}|                     t          |t          |i¦  «        |¬¦  «        ƒ d{V —†c S 6 t          d|› d�¦  «        ‚| j        rt          | j        |¦  «        n|}| j        du rVt!          t"          |t                   t                   ¦  «        }t          |t          t          t          |¦  «        ii¦  «        }|t                   t$                   }	t          |	t"          ¦  «        s"t#          |	¦  «        |t                   t$          <   |                     |¦  «        ƒ d{V —†}
|                      ||
|r|ndt*          |t                   v¬	¦  «        ƒ d{V —†S )
r%  r&  rô  TrÈ  Nrö  r'  r(  r)  )r/   r6   r[  r:   r;  rÍ   r$   re  rÅ   r9   r4   rv  r"  r3   rC  r0   r   rÃ   rD   Ú
aget_tupler#  r8   r+  s              r¿   r"  zPregel.aget_stateœ  s›  è è € õ 4AÀÑ3HÔ3HÍÔ3N×3RÒ3RÝ# TÔ%6ñ4
ô 4
ˆõ �lÕ$7Ñ8Ô8ð 	LØ×=Ò=¸lÑKÔKˆLØð 	4ÝÐ2Ñ3Ô3Ð3ð $¥Dœ\×-Ò-Õ.FÈÑKÔKÐKˆMð	Aå%¨VµD¬\Ð9Ð9å)¨-Ñ8Ô8ˆFà#'×#6Ò#6ÀÐQUÐ#6Ñ#VÔ#Vð Að Að Að Að Að Að A‘i�a˜Ø#×.Ò.Ý& vÕ0GÈÐ/VÑWÔWØ'ð /ñ ô ð ð ð ð ð ð ð ð ð ð $Wõ !Ð!?¨VÐ!?Ð!?Ð!?Ñ@Ô@Ð@à7;´{ÐN•˜tœ{¨FÑ3Ô3Ð3ÈˆØÔ Ð$Ð$Ý•c˜6¥$œ<Õ(@ÔAÑBÔBˆBÝ"Ø�Õ 8Õ:NÈrÑ:RÔ:RÐSÐTñô ˆFð �4”LÕ!5Ô6ˆ	Ý˜)¥SÑ)Ô)ð 	@Ý14°Y±´ˆF•4ŒLÕ-Ñ.à"×-Ò-¨fÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5ˆØ×2Ò2ØØØ$-Ð7�L�L°4Ý!9ÀÍÄÐ!Mð	 3ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
s   ÃD©ÚfilterÚbeforeÚlimitr4  r5  r6  ú
int | NoneúIterator[StateSnapshot]c             #  ó~  K  — t          |¦  «        }|t                                        t          | j        ¦  «        }t          |t          ¦  «        r|                      |¦  «        }|st          d¦  «        ‚|t                                        t          d¦  «        x}r‰t          |t                   vrut          |¦  «        }|                      |d¬¦  «        D ];\  }}	|	                     t          |t          |i¦  «        |||¬¦  «        E d{V —†  dS t          d|› d�¦  «        ‚t          | j        |t          t          |t           t#          |t                   t                    ¦  «        ii¦  «        }t%          |                     ||||¬	¦  «        ¦  «        D ]}
|                      |
j        |
¦  «        V — Œ dS )
z*Get the history of the state of the graph.r&  rô  TrÈ  r3  Nr'  r(  ©r5  r6  r4  )r/   r6   r[  r:   r;  rÍ   r$   re  rÅ   r9   r4   ro  Úget_state_historyr3   r0   rC  rD   rÃ   rÎ   r  )r¾   rC  r4  r5  r6  r;  r,  r-  r.  r/  Úcheckpoint_tuples              r¿   r;  zPregel.get_state_historyÈ  s  è è € õ ˜vÑ&Ô&ˆØ39½$´<×3CÒ3CÝ# TÔ%6ñ4
ô 4
ˆõ �lÕ$7Ñ8Ô8ð 	LØ×=Ò=¸lÑKÔKˆLØð 	4ÝÐ2Ñ3Ô3Ð3ð $¥Dœ\×-Ò-Õ.FÈÑKÔKÐKˆMð	Aå%¨VµD¬\Ð9Ð9å)¨-Ñ8Ô8ˆFà!×/Ò/¸&È$Ð/ÑOÔOð 	Að 	A‘	��6Ø!×3Ò3Ý& vÕ0GÈÐ/VÑWÔWØ!Ø!Øð	 4ñ ô ð ð ð ð ð ð ð ð ��å Ð!?¨VÐ!?Ð!?Ð!?Ñ@Ô@Ð@åØŒKØåÝ,¨mÝ(­#¨fµT¬lÕ;OÔ.PÑ*QÔ*Qððñ	
ô 	
ˆõ !%Ø×Ò˜f¨V¸5ÈÐÑPÔPñ!
ô !
ð 	ð 	Ðð ×.Ò.Ø Ô'Ð)9ñô ð ð ð ð ð	ð 	rÁ   úAsyncIterator[StateSnapshot]c              óÈ  K  — t          |¦  «        }t          |¦  «        t                                        t          | j        ¦  «        }t          |t          ¦  «        r|                      |¦  «        }|st          d¦  «        ‚|t                                        t          d¦  «        x}r—t          |t                   vrƒt          |¦  «        }|                      |d¬¦  «        2 3 d{V —†\  }}	|	                     t          |t          |i¦  «        |||¬¦  «        2 3 d{V —†}
|
W V — Œ6  dS 6 t          d|› d�¦  «        ‚t          | j        |t          t          |t           t#          |t                   t                    ¦  «        ii¦  «        }d	„ |                     ||||¬
¦  «        2 ¦   «         ƒ d{V —†D ]&}|                      |j        |¦  «        ƒ d{V —†W V — Œ'dS )z9Asynchronously get the history of the state of the graph.r&  rô  TrÈ  Nr3  r'  r(  c              “  ó$   K  — g | 3 d {V —†	 }|‘Œ6 S r¼   r  rÝ   s     r¿   r  z-Pregel.aget_state_history.<locals>.<listcomp>,  sO   è è € ð !
ð !
ð !
ð !
ð !
ð !
ð !
ð !
ð !
àð ð!
ð !
ð !
ð !
s   …r:  )r/   r6   r[  r:   r;  rÍ   r$   re  rÅ   r9   r4   rv  Úaget_state_historyr3   r0   rC  rD   rÃ   Úalistr#  )r¾   rC  r4  r5  r6  r;  r,  r-  r.  r/  Ústater<  s               r¿   r@  zPregel.aget_state_historyý  s£  è è € õ ˜vÑ&Ô&ˆÝ3@ÀÑ3HÔ3HÍÔ3N×3RÒ3RÝ# TÔ%6ñ4
ô 4
ˆõ �lÕ$7Ñ8Ô8ð 	LØ×=Ò=¸lÑKÔKˆLØð 	4ÝÐ2Ñ3Ô3Ð3ð $¥Dœ\×-Ò-Õ.FÈÑKÔKÐKˆMð	Aå%¨VµD¬\Ð9Ð9å)¨-Ñ8Ô8ˆFà#'×#6Ò#6ÀÐQUÐ#6Ñ#VÔ#Vð 
Að 
Að 
Að 
Að 
Að 
Að 
A‘i�a˜Ø#)×#<Ò#<Ý& vÕ0GÈÐ/VÑWÔWØ!Ø!Øð	 $=ñ $ô $ð  ð  ð  ð  ð  ð  ð  ˜%ð  �K�K�K�K�Kð$ð ��ð $Wõ !Ð!?¨VÐ!?Ð!?Ð!?Ñ@Ô@Ð@åØŒKØåÝ,¨mÝ(­#¨fµT¬lÕ;OÔ.PÑ*QÔ*Qððñ	
ô 	
ˆð!
ð !
à'×-Ò-Ø˜v¨U¸6ð .ñ ô ð!
ñ !
ô !
ð !
ð !
ð !
ð !
ð !
ð !
ð 	ð 	Ðð ×5Ò5Ø Ô'Ð)9ñô ð ð ð ð ð ð ð ð ð ð ð ð	ð 	s   Ã'D0ÄD,Ú
superstepsúSequence[Sequence[StateUpdate]]c                óz  ‡ ‡	‡
— t          |¦  «        t                                        t          ‰ j        ¦  «        Š	t          ‰	t          ¦  «        r‰                      ‰	¦  «        Š	‰	st          d¦  «        ‚t          |¦  «        dk    rt          d¦  «        ‚t          d„ |D ¦   «         ¦  «        rt          d¦  «        ‚|t                                        t          d¦  «        x}rt          |t                   vrkt          |¦  «        }‰                      |d¬¦  «        D ]1\  }}|                     t          |t          ‰	i¦  «        |¦  «        c S t          d	|› d
�¦  «        ‚dˆ	ˆ
ˆ fd„Š
t          |t           t#          |t                   t                    ¦  «        i¦  «        }|D ]} ‰
||¦  «        }Œ|S )ad  Apply updates to the graph state in bulk. Requires a checkpointer to be set.

        Args:
            config: The config to apply the updates to.
            supersteps: A list of supersteps, each including a list of updates to apply sequentially to a graph state.

                Each update is a tuple of the form `(values, as_node, task_id)` where `task_id` is optional.

        Raises:
            ValueError: If no checkpointer is set or no updates are provided.
            InvalidUpdateError: If an invalid update is provided.

        Returns:
            RunnableConfig: The updated config.
        r&  r   úNo supersteps providedc              3  ó<   K  — | ]}t          |¦  «        d k    V — ŒdS ©r   N©rÓ  ©rÞ   Úus     r¿   rà   z+Pregel.bulk_update_state.<locals>.<genexpr>V  ó,   è è € Ð/Ð/˜q�s�1‰vŒv˜Š{Ð/Ð/Ð/Ð/Ð/Ð/rÁ   úNo updates providedrô  TrÈ  r'  r(  Úinput_configr   ÚupdatesúSequence[StateUpdate]r¹   c                óF  •— t          ‰/j        | ¦  «        }‰-                     |¦  «        }|�‰/                     |j        ¦  «         |rt          |j        ¦  «        nt          ¦   «         }|r|j        d                              ¦   «         ni }|r|j         	                    dd¦  «        nd}t          |t          |t                    	                    t          d¦  «        i¦  «        }|r t          ||j        t                   ¦  «        }t          ‰/j        ||�!t          ‰/j        t"          ¦  «        r‰/j        nd |�|j        nd ¬¦  «        \  }}	|d         d d…         \  }
}|
�€ž|t$          k    �r’t'          |¦  «        dk    rt)          d	¦  «        ‚|�öt+          ||j        pg ‰/j        ||	|j        |dz   |d
z   d‰/j        ‰-d ¬¦  «        }d„ |j        pg D ¦   «         x}r3t3          ||t5          dt6          |g ¦  «        g‰-j        ‰/j        ¦  «         |j        pg D ]>\  }}}|t<          t>          fv rŒ||vrŒ||         j          !                    ||f¦  «         Œ?t3          ||| "                    ¦   «         ‰-j        ‰/j        ¦  «         ‰- #                    |tI          |||¦  «        d|dz   |r|j         	                    di ¦  «        ni dœtK          ||d         ¦  «        ¦  «        }tM          ||r|j        nd ¦  «        S |t6          k    �rst'          |¦  «        dk    rt)          d¦  «        ‚tO          tQ          ‰/j)        |
¦  «        ¦  «        x}�rt3          ||t5          dt6          |g ¦  «        g‰-j        ‰/j        ¦  «         |r|j         	                    d¦  «        �|dz   nd}‰- #                    |tI          |||¦  «        d||r|j         	                    di ¦  «        ni dœtK          ||d         ¦  «        ¦  «        }‰- *                    ||tW          tY          t[          |d         ¦  «        t6          ¦  «        ¦  «        ¦  «         tM          ||r|j        nd ¦  «        S t)          d‰/j)        › �¦  «        ‚|dk    �rNt'          |¦  «        dk    rt)          d¦  «        ‚|€t)          d¦  «        ‚tI          |d |¦  «        }‰- #                    |j.        pt          |j        t^          d i¦  «        |d|dz   |j         	                    di ¦  «        dœi ¦  «        }t          |
t`          ¦  «        �r†t'          |
¦  «        dk    �rrt+          ||j        pg ‰/j        ||	||dz   |dz   d‰/j        ‰-d ¬¦  «        }tc          t`          ¦  «        }tc          t`          ¦  «        }| "                    ¦   «         D ]'}||j2                  !                    |j3        ¦  «         Œ(|
D ]ž}t          |th          ¦  «        st)          d|› d�¦  «        ‚|d d…         \  }
}||         }||         }t'          |¦  «        }|t'          |¦  «        k     r||         nd }||          !                    tk          |
||¬¦  «        ¦  «         ŒŸ ‰.tM          ||j        ¦  «        d„ | "                    ¦   «         D ¦   «         ¦  «        S tM          ||j        ¦  «        S tc          tN          ¦  «        }|�x|j        �qt+          ||j        ‰/j        ||	|j        |dz   |d
z   d‰/j        ‰-d ¬¦  «        }| "                    ¦   «         D ]'}||j2                  !                    |j3        ¦  «         Œ(g }t'          |¦  «        dk    �ro|d         \  }
}}|€3t'          ‰/j        ¦  «        dk    rtm          ‰/j        ¦  «        d         }nè|€ato          d„ |d           "                    ¦   «         D ¦   «         ¦  «        s0t          ‰/j)        tV          ¦  «        r‰/j)        ‰/j        v r‰/j)        }n…|€ƒtq          ˆ/fd!„|d           9                    ¦   «         D ¦   «         ¦  «        } | rNt'          | ¦  «        dk    r| d         d         }n,| d         d         | d"         d         k    r| d         d         }|€t)          d#¦  «        ‚|‰/j        vrt)          d$|› d%�¦  «        ‚| !                    ||
|f¦  «         nN|D ]K\  }
}}|€t)          d&¦  «        ‚|‰/j        vrt)          d$|› d%�¦  «        ‚| !                    ||
|f¦  «         ŒLg }!g }"|D �]…\  }}
}#‰/j        |         j:        }$|$st)          d$|› d'�¦  «        ‚tO          ¦   «         }%t5          d||%t>          g¦  «        }| 	                    |tO          ¦   «         ¦  «        }&|#pJ|&r|& ;                    ¦   «         n4tW          tY          t[          |d         ¦  «        t>          ¦  «        ¦  «        }|! !                    |¦  «         |" !                    |¦  «         t'          |$¦  «        dk    r	ty          |$Ž n|$d         }'|' =                    |
t}          |‰/j2        d(z   t~          |%j@        t‚          |t„          t‡          tˆ          t‹          d g |dd ||dz   ¦  «        ||	|¦  «        i¬)¦  «        ¦  «         �Œ‡t�          |!¦  «        }(|�@t�          |"|!¦  «        D ]/\  }}d*„ |j         D ¦   «         })|)r‰- *                    ||)|¦  «         Œ0t3          |||!‰-j        ‰/j        ¦  «         t‘          ||(|dz   |r|j         	                    di ¦  «        ni |r|j        nd |d u ¬+¦  «        \  }*}+tI          |||dz   |*r|(nd |*r‰-j        nd |*¬,¦  «        }‰- #                    |||+tK          ||d         ¦  «        ¦  «        }t�          |"|!¦  «        D ]/\  }}d-„ |j         D ¦   «         x},r‰- *                    ||,|¦  «         Œ0tM          ||r|j        nd ¦  «        S ).Nrß  rí  rî  rô  rï  r   rT  rl  ú1Cannot apply multiple updates when clearing stateé   Trñ  c                óD   — g | ]}|d          t           k    ¯|dd…         ‘ŒS rø  rù  rú  s     r¿   r  zGPregel.bulk_update_state.<locals>.perform_superstep.<locals>.<listcomp>¥  ó9   € ð 'ð 'ð 'àØ˜Qœ4¥<Ò/Ð/ð ˜!˜"˜"œà/Ð/Ð/rÁ   r  rî   Úparents©Úsourcerí  rV  ú4Cannot apply multiple updates when updating as inputÚinputr  úReceived no input writes for Ú__copy__ú,Cannot copy checkpoint with multiple updatesú%Cannot copy a non-existent checkpointÚforkrÜ  úInvalid update item: ú when copying checkpoint©r.  Úas_nodeÚtask_idc                ó   — g | ]	}|D ]}|‘ŒŒ
S r  r  ©rÞ   ÚlstÚitems      r¿   r  zGPregel.bulk_update_state.<locals>.perform_superstep.<locals>.<listcomp>S  ó%   € ÐPÐPÐP #ÈCÐPÐPÀD˜ÐPÐPÐPÐPrÁ   c              3  óH   K  — | ]}|                      ¦   «         D ]}|V — ŒŒd S r¼   )r.  )rÞ   Úvvrè   s      r¿   rà   zFPregel.bulk_update_state.<locals>.perform_superstep.<locals>.<genexpr>w  sU   è è € ð 1ð 1àØŸYšY™[œ[ð1ð 1ð ð ð1ð 1ð 1ð 1ð 1ð 1ð 1rÁ   Úversions_seenc              3  óf   •K  — | ]+\  }}|‰j         v ¯|                     ¦   «         D ]}||fV — Œ	Œ,d S r¼   ©r-  r.  ©rÞ   rÐ  Úseenrè   r¾   s       €r¿   rà   zFPregel.bulk_update_state.<locals>.perform_superstep.<locals>.<genexpr>‚  óV   øè è € ð /ð /á#˜A˜tØ ¤
˜?˜?Ø!%§¢¡¤ð +˜?Øð ˜A˜à*˜?˜?˜?˜?ð/ð /rÁ   éþÿÿÿú!Ambiguous update, specify as_nodeúNode ú does not existú2as_node is required when applying multiple updatesú has no writersÚUpdateState©Úrun_namer•  c                ó4   — g | ]}|d          t           k    ¯|‘ŒS ©r   ©rK   rú  s     r¿   r  zGPregel.bulk_update_state.<locals>.perform_superstep.<locals>.<listcomp>Ó  ó!   € Ð%MÐ%MÐ%M¨AÀÀ!ÄÍÂÀ aÀÀÀrÁ   ©rí  rV  Úsaved_metadataÚis_fresh_thread©Úupdated_channelsÚget_next_versionÚchannels_to_snapshotc                ó4   — g | ]}|d          t           k    ¯|‘ŒS r|  r}  rú  s     r¿   r  zGPregel.bulk_update_state.<locals>.perform_superstep.<locals>.<listcomp>ü  ó!   € Ð"JÐ"JÐ"J¨¸Q¸q¼TÅTº\¸\ 1¸\¸\¸\rÁ   )Ir/   rC  r*  râ  rÚ  rm   rp   r†  rì   r[  r3   r9   r6   rl   rÊ   rÍ   r;  r$   r^   rÓ  rb   ri   r  r-  r=  rg   re   rF   r„  rF  rE   rG   rÿ  rÆ   r.  Úputrn   r~   r1   r   rs   r7  Ú
put_writesrÃ   r   r   rê  r8   rÎ   r   rÕ   r  r   r    r^  ÚanyÚsortedré   Úflat_writersÚpopleftr   Úinvoker2   r@   rÏ   rC   r=   r   rh   rf   rq   rw  ro   )0rN  rO  rC  rã  rÚ  Úcheckpoint_previous_versionsrí  Úcheckpoint_configrÊ   r  r.  rc  r  r  r  rç   rè   Únext_configÚinput_writesÚ	next_stepÚnext_checkpointÚtasks_group_byÚuser_group_byr
  rh  Ú
user_groupÚtasks_groupÚ
target_idxrd  Únode_to_task_idsr  Úvalid_updatesÚlast_seen_by_nodeÚ	run_tasksÚrun_task_idsÚprovided_task_idrü   rÿ  Úprepared_task_idsÚrunrƒ  Úchannel_writesr…  Úcheckpoint_metadataÚpush_writesr;  Úperform_superstepr¾   s0                                                €€€r¿   r¥  z3Pregel.bulk_update_state.<locals>.perform_supersteph  s®  ø€ õ # 4¤;°Ñ=Ô=ˆFØ ×*Ò*¨6Ñ2Ô2ˆEØÐ Ø×(Ò(¨Ô)9Ñ:Ô:Ð:à5:ÐR• Ô 0Ñ1Ô1Ð1Õ@PÑ@RÔ@Rð ð @EÐL�Ô Ð!3Ô4×9Ò9Ñ;Ô;Ð;È"ð )ð 6;ÐB�5”>×%Ò% f¨bÑ1Ô1Ð1ÀˆDå 2Øå,¨fµT¬l×.>Ò.>Ý0°"ñ/ô /ðñ!ô !Ðð ð SÝ$6°v¸u¼|ÍDÔ?QÑ$RÔ$RÐ!Ý 8Ø”ØàÐ$Ý˜tÔ0Õ2EÑFÔFð %ð Ô'Ð'ð Ø',Ð'8�u”|�|¸dð!ñ !ô !ÑˆH�gð & aœj¨¨!¨œn‰OˆF�Gð ‰~ '­S¢.¡.Ý�w‘<”< !Ò#Ð#Ý,ØKñô ð ð Ð$å!3Ø"ØÔ,Ð2°Øœ
Ø ØØœØ˜q™Ø˜q™Ø&*Ø"œjØ%1Ø $ð"ñ "ô "�Jð'ð 'à!&Ô!5Ð!;¸ð'ñ 'ô 'ð �{ð õ
 %Ø&Ø$Ý-¨bµ%¸ÀbÑIÔIÐJØ(Ô9Ø Ô1ñô ð ð &+Ô%9Ð%?¸Rð >ð >™	˜˜Q Ø¥­	Ð 2Ð2Ð2Ø$Ø jÐ0Ð0Ø$Ø" 3œÔ.×5Ò5°q¸!°fÑ=Ô=Ð=Ð=å Ø"Ø Ø"×)Ò)Ñ+Ô+Ø$Ô5ØÔ-ñô ð ð +×.Ò.Ø%Ý% j°(¸DÑAÔAà"*Ø $ q¡ØHMÐ#U 5¤>×#5Ò#5°iÀÑ#DÔ#DÐ#DÐSUðð õ
 -Ø4Ø"Ð#5Ô6ñô ñô �õ ,Ø°5Ð!B ¤ ¸dñô ð ð
 �%ÒÑÝ�w‘<”< !Ò#Ð#Ý,ØNñô ð õ $)­°4Ô3FÈÑ)OÔ)OÑ#PÔ#PÐP�<ñ ,Ý Ø"Ø Ý)¨"­e°\À2ÑFÔFÐGØ$Ô5ØÔ-ñô ð ð !ð Ø%*¤^×%7Ò%7¸Ñ%?Ô%?Ð%Kð ˜q™˜àð ð
 #/×"2Ò"2Ø)Ý)¨*°hÀ	ÑJÔJà&-Ø$-à$ð($ u¤~×'9Ò'9¸)ÀRÑ'HÔ'HÐ'Hà!#ðð õ 1Ø8Ø&Ð'9Ô:ñô ñ#ô #�Kð" !×+Ò+Ø#Ø$Ý�E¥$ z°$Ô'7Ñ"8Ô"8½%Ñ@Ô@ÑAÔAñô ð õ 0Ø#°uÐ%F U¤^ ^À$ñô ð õ -ØM¸Ô8KÐMÐMñô ð ð
 ˜*Ò$Ñ$Ý�w‘<”< !Ò#Ð#Ý,ØFñô ð ð �=Ý,Ð-TÑUÔUÐUå"3°JÀÀdÑ"KÔ"K�ð +×.Ò.ØÔ'ð Ý)ØœÕ'?ÀÐ&Fñô ð $à"(Ø $ q¡Ø#(¤>×#5Ò#5°iÀÑ#DÔ#Dðð ð
 ñô �õ  ˜f¥dÑ+Ô+ñ 0µ°F±´¸a²±å!3Ø'ØÔ,Ð2°Øœ
Ø ØØ#Ø˜q™Ø˜q™Ø&*Ø"œjØ%1Ø $ð"ñ "ô "�Jõ &1µÑ%6Ô%6�NÝBMÍdÑBSÔBS�Mà *× 1Ò 1Ñ 3Ô 3ð Bð B˜Ø& t¤yÔ1×8Ò8¸¼ÑAÔAÐAÐAà &ð ð ˜Ý)¨$µÑ9Ô9ð Ý"4Ø V¸Ð VÐ VÐ Vñ#ô #ð ð +/¨r°¨r¬(™˜ à%2°7Ô%;˜
Ø&4°WÔ&=˜å%(¨¡_¤_˜
ð  *­C°Ñ,<Ô,<Ò<Ð<ð (¨
Ô3Ð3à!%ð  ð & gÔ.×5Ò5Ý'¨v¸wÐPWÐXÑXÔXñô ð ð ð -Ð,Ý,¨[¸%¼.ÑIÔIØPÐP¨×)=Ò)=Ñ)?Ô)?ÐPÑPÔPñô ð õ
 ,¨K¸¼ÑHÔHÐHõ 7BÅ%Ñ6HÔ6HÐØÐ  UÔ%9Ð%Eõ 0ØØÔ(Ø”JØØØ”LØ˜1‘HØ˜1‘HØ"&Øœ*Ø!-Ø ðñ ô �
ð $×*Ò*Ñ,Ô,ð :ð :�AØ$ Q¤VÔ,×3Ò3°A´DÑ9Ô9Ð9Ð9àQSˆMÝ�7‰|Œ|˜qÒ Ñ Ø+2°1¬:Ñ(�˜ à�?¥s¨4¬:¡¤¸!Ò';Ð';Ý# D¤JÑ/Ô/°Ô2�G�GØ�_­Sð 1ð 1à(¨Ô9×@Ò@ÑBÔBð1ñ 1ô 1ñ .ô .�_õ # 4Ô#6½Ñ<Ô<ð6à Ô/°4´:Ð=Ð=à"&Ô"5˜øØ�_Ý(.ð /ð /ð /ð /à'1°/Ô'B×'HÒ'HÑ'JÔ'Jð/ñ /ô /ñ )ô )Ð%ð )ð ?ÝÐ0Ñ1Ô1°QÒ6Ð6Ø&7¸Ô&:¸1Ô&=˜G˜GØ.¨rÔ2°1Ô5Ð9JÈ2Ô9NÈqÔ9QÒQÐQØ&7¸Ô&;¸AÔ&>˜GØ�?Ý,Ð-PÑQÔQÐQØ $¤*Ð,Ð,Ý,Ð-M°WÐ-MÐ-MÐ-MÑNÔNÐNØ×$Ò$ g¨v°wÐ%?Ñ@Ô@Ð@Ð@à07ð Eð EÑ,�F˜G WØ�Ý0ØPñô ð ð  d¤jÐ0Ð0Ý0Ð1Q¸Ð1QÐ1QÐ1QÑRÔRÐRà!×(Ò(¨'°6¸7Ð)CÑDÔDÐDÐDà02ˆIØ&(ˆLà5Bð .ñ .Ñ1�˜Ð!1àœ* WÔ-Ô:�Øð OÝ,Ð-M°WÐ-MÐ-MÐ-MÑNÔNÐNÝ16±´�Ý'¨¨G°V½i¸[ÑIÔI�ð %5×$8Ò$8¸Å%Á'Ä'Ñ$JÔ$JÐ!Ø*ð à(ðGÐ%×-Ò-Ñ/Ô/Ð/å�U¥4¨
°4Ô(8Ñ#9Ô#9½9ÑEÔEÑFÔFð ð
 × Ò  Ñ&Ô&Ð&Ø×#Ò# GÑ,Ô,Ð,Ý47¸±L´LÀ1Ò4DÐ4DÕ&¨Ð0Ð0È'ÐRSÌ*�à—
’
ØÝ ØØ!%¤¨]Ñ!:õ ,¨V¬]Ý.°Ý+­WÝ *Ý +Ø$(Ø$&Ø$+Ø$&Ø$(Ø$(Ø$(¨1¡Hñ!"ô !"ð !)Ø 'Ø $ñ.ô .ð	&ðñ ô ñô ð ñ õ6  ?¸yÑIÔIÐØÐ Ý%(¨°yÑ%AÔ%Að ð ‘M�G˜TØ%MÐ%M°´Ð%MÑ%MÔ%M�NØ%ð Ø$×/Ò/Ø-¨~¸wñô ð øõ ØØØØÔ-ØÔ%ñô ð õ <ØØ$Ø ™ØAFÐN˜EœN×.Ò.¨y¸"Ñ=Ô=Ð=ÈBØ5:Ð#D 5¤> >ÀØ$)¨T Mðñ ô ñ 6Ð Ð"5õ +ØØØ�q‘Ø5IÐ!SÐ!1Ð!1Ètà'ð" Ô!>Ð!>àØ%9ð	ñ 	ô 	ˆJð '×*Ò*Ø!ØØ#Ý(Ø0°*Ð=OÔ2Pñô ñ	ô ˆKõ "% \°9Ñ!=Ô!=ð Oð O‘�˜Ø"JÐ"J¨d¬kÐ"JÑ"JÔ"JÐJ�;ð OØ ×+Ò+¨K¸ÀgÑNÔNÐNøå'¨ÀuÐ5V°U´^°^ÐRVÑWÔWÐWrÁ   ©rN  r   rO  rP  r¹   r   )r/   r6   r[  r:   r;  rÍ   r$   re  rÅ   rÓ  rŠ  r9   r4   ro  Úbulk_update_stater3   rD   rÃ   )r¾   rC  rC  r,  r-  r.  r/  Úcurrent_configÚ	superstepr;  r¥  s   `        @@r¿   r§  zPregel.bulk_update_state6  s  øøø€ õ* 4AÀÑ3HÔ3HÍÔ3N×3RÒ3RÝ# TÔ%6ñ4
ô 4
ˆõ �lÕ$7Ñ8Ô8ð 	LØ×=Ò=¸lÑKÔKˆLØð 	4ÝÐ2Ñ3Ô3Ð3åˆz‰?Œ?˜aÒÐÝÐ5Ñ6Ô6Ð6åÐ/Ð/ JÐ/Ñ/Ô/Ñ/Ô/ð 	4ÝÐ2Ñ3Ô3Ð3ð $¥Dœ\×-Ò-Õ.FÈÑKÔKÐKˆMð	Aå%¨VµD¬\Ð9Ð9å)¨-Ñ8Ô8ˆFà!×/Ò/¸&È$Ð/ÑOÔOð Að A‘	��6Ø×/Ò/Ý& vÕ0GÈÐ/VÑWÔWØñô ð ð ð õ
 !Ð!?¨VÐ!?Ð!?Ð!?Ñ@Ô@Ð@ðW	Xð W	Xð W	Xð W	Xð W	Xð W	Xð W	Xð W	Xõr ,ØÕ)­3¨vµd¬|Õ<PÔ/QÑ+RÔ+RÐSñ
ô 
ˆð $ð 	Jð 	JˆIØ.Ð.¨~¸yÑIÔIˆNˆNØÐrÁ   c              ƒ  ó¢  ‡ ‡	‡
K  — t          |¦  «        t                                        t          ‰ j        ¦  «        Š
t          ‰
t          ¦  «        r‰                      ‰
¦  «        Š
‰
st          d¦  «        ‚t          |¦  «        dk    rt          d¦  «        ‚t          d„ |D ¦   «         ¦  «        rt          d¦  «        ‚|t                                        t          d¦  «        x}r‹t          |t                   vrwt          |¦  «        }‰                      |d¬¦  «        2 3 d	{V —†\  }}|                     t          |t          ‰
i¦  «        |¦  «        ƒ d	{V —†c S 6 t          d
|› d�¦  «        ‚dˆ	ˆ
ˆ fd„Š	t          |t           t#          |t                   t                    ¦  «        i¦  «        }|D ]} ‰	||¦  «        ƒ d	{V —†}Œ|S )as  Asynchronously apply updates to the graph state in bulk. Requires a checkpointer to be set.

        Args:
            config: The config to apply the updates to.
            supersteps: A list of supersteps, each including a list of updates to apply sequentially to a graph state.

                Each update is a tuple of the form `(values, as_node, task_id)` where `task_id` is optional.

        Raises:
            ValueError: If no checkpointer is set or no updates are provided.
            InvalidUpdateError: If an invalid update is provided.

        Returns:
            RunnableConfig: The updated config.
        r&  r   rF  c              3  ó<   K  — | ]}t          |¦  «        d k    V — ŒdS rH  rI  rJ  s     r¿   rà   z,Pregel.abulk_update_state.<locals>.<genexpr>(  rL  rÁ   rM  rô  TrÈ  Nr'  r(  rN  r   rO  rP  r¹   c              “  óx  •K  — t          ‰/j        | ¦  «        }‰.                     |¦  «        ƒ d {V —†}|�‰/                     |j        ¦  «         |rt          |j        ¦  «        nt          ¦   «         }|r|j        d                              ¦   «         ni }|r|j         	                    dd¦  «        nd}t          |t          |t                    	                    t          d¦  «        i¦  «        }|r t          ||j        t                   ¦  «        }t          ‰/j        ||�!t          ‰/j        t"          ¦  «        r‰/j        nd |�|j        nd ¬¦  «        ƒ d {V —†\  }}	|d         d d…         \  }
}|
�€¤|t$          k    �r˜t'          |¦  «        dk    rt)          d	¦  «        ‚|�öt+          ||j        pg ‰/j        ||	|j        |dz   |d
z   d‰/j        ‰.d ¬¦  «        }d„ |j        pg D ¦   «         x}r3t3          ||t5          dt6          |g ¦  «        g‰.j        ‰/j        ¦  «         |j        pg D ]>\  }}}|t<          t>          fv rŒ||vrŒ||         j          !                    ||f¦  «         Œ?t3          ||| "                    ¦   «         ‰.j        ‰/j        ¦  «         ‰. #                    |tI          |||¦  «        d|dz   |r|j         	                    di ¦  «        ni dœtK          ||d         ¦  «        ¦  «        ƒ d {V —†}tM          ||r|j        nd ¦  «        S |t6          k    �rt'          |¦  «        dk    rt)          d¦  «        ‚tO          tQ          ‰/j)        |
¦  «        ¦  «        x}�r!t3          ||t5          dt6          |g ¦  «        g‰.j        ‰/j        ¦  «         |r|j         	                    d¦  «        �|dz   nd}‰. #                    |tI          |||¦  «        d||r|j         	                    di ¦  «        ni dœtK          ||d         ¦  «        ¦  «        ƒ d {V —†}‰. *                    ||tW          tY          t[          |d         ¦  «        t6          ¦  «        ¦  «        ¦  «        ƒ d {V —† tM          ||r|j        nd ¦  «        S t)          d‰/j)        › �¦  «        ‚|dk    �r^t'          |¦  «        dk    rt)          d¦  «        ‚|€t)          d¦  «        ‚tI          |d |¦  «        }‰. #                    |j.        pt          |j        t^          d i¦  «        |d|dz   |j         	                    di ¦  «        dœi ¦  «        ƒ d {V —†}t          |
t`          ¦  «        �rŒt'          |
¦  «        dk    �rxt+          ||j        pg ‰/j        ||	||dz   |dz   d‰/j        ‰.d ¬¦  «        }tc          t`          ¦  «        }tc          t`          ¦  «        }| "                    ¦   «         D ]'}||j2                  !                    |j3        ¦  «         Œ(|
D ]ž}t          |th          ¦  «        st)          d|› d�¦  «        ‚|d d…         \  }
}||         }||         }t'          |¦  «        }|t'          |¦  «        k     r||         nd }||          !                    tk          |
||¬¦  «        ¦  «         ŒŸ ‰-tM          ||j        ¦  «        d„ | "                    ¦   «         D ¦   «         ¦  «        ƒ d {V —†S tM          ||r|j        nd ¦  «        S tc          tN          ¦  «        }|�x|j        �qt+          ||j        ‰/j        ||	|j        |dz   |d
z   d‰/j        ‰.d ¬¦  «        }| "                    ¦   «         D ]'}||j2                  !                    |j3        ¦  «         Œ(g }t'          |¦  «        dk    �r@|d         \  }
}}|€3t'          ‰/j        ¦  «        dk    rtm          ‰/j        ¦  «        d         }n¹|€2|s0t          ‰/j)        tV          ¦  «        r‰/j)        ‰/j        v r‰/j)        }n…|€ƒto          ˆ/fd„|d           8                    ¦   «         D ¦   «         ¦  «        } | rNt'          | ¦  «        dk    r| d         d         }n,| d         d         | d!         d         k    r| d         d         }|€t)          d"¦  «        ‚|‰/j        vrt)          d#|› d$�¦  «        ‚| !                    ||
|f¦  «         nN|D ]K\  }
}}|€t)          d%¦  «        ‚|‰/j        vrt)          d#|› d$�¦  «        ‚| !                    ||
|f¦  «         ŒLg }!g }"|D �]‹\  }}
}#‰/j        |         j9        }$|$st)          d#|› d&�¦  «        ‚tO          ¦   «         }%t5          d||%t>          g¦  «        }| 	                    |tO          ¦   «         ¦  «        }&|#pJ|&r|& :                    ¦   «         n4tW          tY          t[          |d         ¦  «        t>          ¦  «        ¦  «        }|! !                    |¦  «         |" !                    |¦  «         t'          |$¦  «        dk    r	tw          |$Ž n|$d         }'|' <                    |
t{          |‰/j2        d'z   t|          |%j?        t€          |t‚          t…          t†          t‰          d g |dd ||dz   ¦  «        ||	|¦  «        i¬(¦  «        ¦  «        ƒ d {V —† �Œ�t‹          |!¦  «        }(|�Ft�          |"|!¦  «        D ]5\  }}d)„ |j         D ¦   «         })|)r‰. *                    ||)|¦  «        ƒ d {V —† Œ6t3          |||!‰.j        ‰/j        ¦  «         t�          ||(|dz   |r|j         	                    di ¦  «        ni |r|j        nd |d u ¬*¦  «        \  }*}+tI          |||dz   |*r|(nd |*r‰.j        nd |*¬+¦  «        }‰. #                    |||+tK          ||d         ¦  «        ¦  «        ƒ d {V —†}t�          |"|!¦  «        D ]5\  }}d,„ |j         D ¦   «         x},r‰. *                    ||,|¦  «        ƒ d {V —† Œ6tM          ||r|j        nd ¦  «        S )-Nrß  rí  rî  rô  rï  r   rT  rl  rR  rS  Trñ  c                óD   — g | ]}|d          t           k    ¯|dd…         ‘ŒS rø  rù  rú  s     r¿   r  zIPregel.abulk_update_state.<locals>.aperform_superstep.<locals>.<listcomp>u  rU  rÁ   r  rî   rV  rW  rY  rZ  r  r[  r\  r]  r^  r_  rÜ  r`  ra  rb  c                ó   — g | ]	}|D ]}|‘ŒŒ
S r  r  rf  s      r¿   r  zIPregel.abulk_update_state.<locals>.aperform_superstep.<locals>.<listcomp>!	  ri  rÁ   c              3  óf   •K  — | ]+\  }}|‰j         v ¯|                     ¦   «         D ]}||fV — Œ	Œ,d S r¼   rn  ro  s       €r¿   rà   zHPregel.abulk_update_state.<locals>.aperform_superstep.<locals>.<genexpr>N	  rq  rÁ   rl  rr  rs  rt  ru  rv  rw  rx  ry  c                ó4   — g | ]}|d          t           k    ¯|‘ŒS r|  r}  rú  s     r¿   r  zIPregel.abulk_update_state.<locals>.aperform_superstep.<locals>.<listcomp>Ÿ	  r~  rÁ   r  r‚  c                ó4   — g | ]}|d          t           k    ¯|‘ŒS r|  r}  rú  s     r¿   r  zIPregel.abulk_update_state.<locals>.aperform_superstep.<locals>.<listcomp>È	  r‡  rÁ   )Hr/   rC  r2  râ  rÚ  rm   rp   r†  rì   r[  r3   r9   r6   rk   rÊ   rÍ   r;  r$   r^   rÓ  rb   ri   r  r-  r=  rg   re   rF   r„  rF  rE   rG   rÿ  rÆ   r.  Úaputrn   r~   r1   r   rs   r7  Úaput_writesrÃ   r   r   rê  r8   rÎ   r   rÕ   r  r   r    r^  r‹  ré   rŒ  r�  r   Úainvoker2   r@   rÏ   rC   r=   r   rh   rf   rq   rw  ro   )0rN  rO  rC  rã  rÚ  r�  rí  r�  rÊ   r  r.  rc  r  r  r  rç   rè   r‘  r’  r“  r”  r•  r–  r
  rh  r—  r˜  r™  rd  rš  r  r›  rœ  r�  rž  rŸ  rü   rÿ  r   r¡  rƒ  r¢  r…  r£  r¤  Úaperform_superstepr;  r¾   s0                                                €€€r¿   rµ  z5Pregel.abulk_update_state.<locals>.aperform_superstep:  s¸  øè è € õ # 4¤;°Ñ=Ô=ˆFØ&×1Ò1°&Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9ˆEØÐ Ø×(Ò(¨Ô)9Ñ:Ô:Ð:à5:ÐR• Ô 0Ñ1Ô1Ð1Õ@PÑ@RÔ@Rð ð @EÐL�Ô Ð!3Ô4×9Ò9Ñ;Ô;Ð;È"ð )ð 6;ÐB�5”>×%Ò% f¨bÑ1Ô1Ð1ÀˆDå 2Øå,¨fµT¬l×.>Ò.>Ý0°"ñ/ô /ðñ!ô !Ðð ð SÝ$6°v¸u¼|ÍDÔ?QÑ$RÔ$RÐ!Ý&?Ø”ØàÐ$Ý˜tÔ0Õ2EÑFÔFð %ð Ô'Ð'ð Ø',Ð'8�u”|�|¸dð'ñ 'ô 'ð !ð !ð !ð !ð !ð !ÑˆH�gð & aœj¨¨!¨œn‰OˆF�Gà‰~ '­S¢.¡.Ý�w‘<”< !Ò#Ð#Ý,ØKñô ð ð Ð$å!3Ø"ØÔ,Ð2°Øœ
Ø ØØœØ˜q™Ø˜q™Ø&*Ø"œjØ%1Ø $ð"ñ "ô "�Jð'ð 'à!&Ô!5Ð!;¸ð'ñ 'ô 'ð �{ð õ
 %Ø&Ø$Ý-¨bµ%¸ÀbÑIÔIÐJØ(Ô9Ø Ô1ñô ð ð &+Ô%9Ð%?¸Rð >ð >™	˜˜Q Ø¥­	Ð 2Ð2Ð2Ø$Ø jÐ0Ð0Ø$Ø" 3œÔ.×5Ò5°q¸!°fÑ=Ô=Ð=Ð=å Ø"Ø Ø"×)Ò)Ñ+Ô+Ø$Ô5ØÔ-ñô ð ð %1×$5Ò$5Ø%Ý% j°(¸DÑAÔAà"*Ø $ q¡ØHMÐ#U 5¤>×#5Ò#5°iÀÑ#DÔ#DÐ#DÐSUðð õ
 -Ø4°jÐASÔ6Tñô ñ%ô %ð ð ð ð ð ð �õ ,Ø°5Ð!B ¤ ¸dñô ð ð
 �%ÒÑÝ�w‘<”< !Ò#Ð#Ý,ØNñô ð õ $)­°4Ô3FÈÑ)OÔ)OÑ#PÔ#PÐP�<ñ ,Ý Ø"Ø Ý)¨"­e°\À2ÑFÔFÐGØ$Ô5ØÔ-ñô ð ð !ð Ø%*¤^×%7Ò%7¸Ñ%?Ô%?Ð%Kð ˜q™˜àð ð
 )5×(9Ò(9Ø)Ý)¨*°hÀ	ÑJÔJà&-Ø$-à$ð($ u¤~×'9Ò'9¸)ÀRÑ'HÔ'HÐ'Hà!#ðð õ 1Ø8Ø&Ð'9Ô:ñô ñ)ô )ð #ð #ð #ð #ð #ð #�Kð" '×2Ò2Ø#Ø$Ý�E¥$ z°$Ô'7Ñ"8Ô"8½%Ñ@Ô@ÑAÔAñô ð ð ð ð ð ð ð õ 0Ø#°uÐ%F U¤^ ^À$ñô ð õ -ØM¸Ô8KÐMÐMñô ð ð
 ˜*Ò$Ñ$Ý�w‘<”< !Ò#Ð#Ý,ØFñô ð ð �=Ý,Ð-TÑUÔUÐUå"3°JÀÀdÑ"KÔ"K�ð %1×$5Ò$5ØÔ'ð Ý)ØœÕ'?ÀÐ&Fñô ð $à"(Ø $ q¡Ø#(¤>×#5Ò#5°iÀÑ#DÔ#Dðð ð
 ñ%ô %ð ð ð ð ð ð �õ  ˜f¥dÑ+Ô+ñ /µ°F±´¸a²±å!3Ø'ØÔ,Ð2°Øœ
Ø ØØ#Ø˜q™Ø˜q™Ø&*Ø"œjØ%1Ø $ð"ñ "ô "�Jõ &1µÑ%6Ô%6�NÝBMÍdÑBSÔBS�Mà *× 1Ò 1Ñ 3Ô 3ð Bð B˜Ø& t¤yÔ1×8Ò8¸¼ÑAÔAÐAÐAà &ð ð ˜Ý)¨$µÑ9Ô9ð Ý"4Ø V¸Ð VÐ VÐ Vñ#ô #ð ð +/¨r°¨r¬(™˜ Ø%2°7Ô%;˜
Ø&4°WÔ&=˜å%(¨¡_¤_˜
ð  *­C°Ñ,<Ô,<Ò<Ð<ð (¨
Ô3Ð3à!%ð  ð & gÔ.×5Ò5Ý'¨v¸wÐPWÐXÑXÔXñô ð ð ð "4Ð!3Ý,¨[¸%¼.ÑIÔIØPÐP¨×)=Ò)=Ñ)?Ô)?ÐPÑPÔPñ"ô "ð ð ð ð ð ð ð õ
 ,Ø°5Ð!B ¤ ¸dñô ð õ 7BÅ%Ñ6HÔ6HÐØÐ  UÔ%9Ð%Eõ 0ØØÔ(Ø”JØØØ”LØ˜1‘HØ˜1‘HØ"&Øœ*Ø!-Ø ðñ ô �
ð $×*Ò*Ñ,Ô,ð :ð :�AØ$ Q¤VÔ,×3Ò3°A´DÑ9Ô9Ð9Ð9àQSˆMÝ�7‰|Œ|˜qÒ Ñ Ø+2°1¬:Ñ(�˜ à�?¥s¨4¬:¡¤¸!Ò';Ð';Ý# D¤JÑ/Ô/°Ô2�G�GØ�_¨U�_å" 4Ô#6½Ñ<Ô<ð6à Ô/°4´:Ð=Ð=à"&Ô"5˜øØ�_Ý(.ð /ð /ð /ð /à'1°/Ô'B×'HÒ'HÑ'JÔ'Jð/ñ /ô /ñ )ô )Ð%ð )ð ?ÝÐ0Ñ1Ô1°QÒ6Ð6Ø&7¸Ô&:¸1Ô&=˜G˜GØ.¨rÔ2°1Ô5Ð9JÈ2Ô9NÈqÔ9QÒQÐQØ&7¸Ô&;¸AÔ&>˜GØ�?Ý,Ð-PÑQÔQÐQØ $¤*Ð,Ð,Ý,Ð-M°WÐ-MÐ-MÐ-MÑNÔNÐNØ×$Ò$ g¨v°wÐ%?Ñ@Ô@Ð@Ð@à07ð Eð EÑ,�F˜G WØ�Ý0ØPñô ð ð  d¤jÐ0Ð0Ý0Ð1Q¸Ð1QÐ1QÐ1QÑRÔRÐRà!×(Ò(¨'°6¸7Ð)CÑDÔDÐDÐDà02ˆIØ&(ˆLà5Bð .ñ .Ñ1�˜Ð!1àœ* WÔ-Ô:�Øð OÝ,Ð-M°WÐ-MÐ-MÐ-MÑNÔNÐNÝ16±´�Ý'¨¨G°V½i¸[ÑIÔI�ð %5×$8Ò$8¸Å%Á'Ä'Ñ$JÔ$JÐ!Ø*ð à(ðGÐ%×-Ò-Ñ/Ô/Ð/å�U¥4¨
°4Ô(8Ñ#9Ô#9½9ÑEÔEÑFÔFð ð
 × Ò  Ñ&Ô&Ð&Ø×#Ò# GÑ,Ô,Ð,Ý47¸±L´LÀ1Ò4DÐ4DÕ&¨Ð0Ð0È'ÐRSÌ*�à—k’kØÝ ØØ!%¤¨]Ñ!:õ ,¨V¬]Ý.°Ý+­WÝ *Ý +Ø$(Ø$&Ø$+Ø$&Ø$(Ø$(Ø$(¨1¡Hñ!"ô !"ð !)Ø 'Ø $ñ.ô .ð	&ðñ ô ñô ð ð ð ð ð ð ð ñ õ6  ?¸yÑIÔIÐØÐ Ý%(¨°yÑ%AÔ%Að ð ‘M�G˜TØ%MÐ%M°´Ð%MÑ%MÔ%M�NØ%ð Ø*×6Ò6Ø-¨~¸wñô ð ð ð ð ð ð ð øõ ØØØØÔ-ØÔ%ñô ð õ <ØØ$Ø ™ØAFÐN˜EœN×.Ò.¨y¸"Ñ=Ô=Ð=ÈBØ5:Ð#D 5¤> >ÀØ$)¨T Mðñ ô ñ 6Ð Ð"5õ +ØØØ�q‘Ø5IÐ!SÐ!1Ð!1Ètà'ð" Ô!>Ð!>àØ%9ð	ñ 	ô 	ˆJð !-× 1Ò 1Ø!ØØ#Ý(Ø0°*Ð=OÔ2Pñô ñ	!ô !ð ð ð ð ð ð ˆKõ "% \°9Ñ!=Ô!=ð Vð V‘�˜Ø"JÐ"J¨d¬kÐ"JÑ"JÔ"JÐJ�;ð VØ&×2Ò2°;ÀÈWÑUÔUÐUÐUÐUÐUÐUÐUÐUøÝ'¨ÀuÐ5V°U´^°^ÐRVÑWÔWÐWrÁ   r¦  )r/   r6   r[  r:   r;  rÍ   r$   re  rÅ   rÓ  rŠ  r9   r4   rv  Úabulk_update_stater3   rD   rÃ   )r¾   rC  rC  r,  r-  r.  r/  r¨  r©  rµ  r;  s   `        @@r¿   r¶  zPregel.abulk_update_state  sj  øøøè è € õ* 4AÀÑ3HÔ3HÍÔ3N×3RÒ3RÝ# TÔ%6ñ4
ô 4
ˆõ �lÕ$7Ñ8Ô8ð 	LØ×=Ò=¸lÑKÔKˆLØð 	4ÝÐ2Ñ3Ô3Ð3åˆz‰?Œ?˜aÒÐÝÐ5Ñ6Ô6Ð6åÐ/Ð/ JÐ/Ñ/Ô/Ñ/Ô/ð 	4ÝÐ2Ñ3Ô3Ð3ð $¥Dœ\×-Ò-Õ.FÈÑKÔKÐKˆMð	Aå%¨VµD¬\Ð9Ð9å)¨-Ñ8Ô8ˆFà#'×#6Ò#6ÀÐQUÐ#6Ñ#VÔ#Vð Að Að Að Að Að Að A‘i�a˜Ø#×6Ò6Ý& vÕ0GÈÐ/VÑWÔWØñô ð ð ð ð ð ð ð ð ð ð $Wõ !Ð!?¨VÐ!?Ð!?Ð!?Ñ@Ô@Ð@ðP	Xð P	Xð P	Xð P	Xð P	Xð P	Xð P	Xð P	Xõd ,ØÕ)­3¨vµd¬|Õ<PÔ/QÑ+RÔ+RÐSñ
ô 
ˆð $ð 	Qð 	QˆIØ#5Ð#5°nÀiÑ#PÔ#PÐPÐPÐPÐPÐPÐPˆNˆNØÐs   Ä%E"údict[str, Any] | Any | Nonerc  rd  c                óP   — |                       |t          |||¦  «        gg¦  «        S )zÚUpdate the state of the graph with the given values, as if they came from
        node `as_node`. If `as_node` is not provided, it will be set to the last node
        that updated the state, if not ambiguous.
        )r§  r    ©r¾   rC  r.  rc  rd  s        r¿   Úupdate_statezPregel.update_stateÓ	  s,   € ð ×%Ò% fµ¸FÀGÈWÑ0UÔ0UÐ/VÐ.WÑXÔXÐXrÁ   údict[str, Any] | Anyc              ƒ  ó`   K  — |                       |t          |||¦  «        gg¦  «        ƒ d{V —†S )zéAsynchronously update the state of the graph with the given values, as if they came from
        node `as_node`. If `as_node` is not provided, it will be set to the last node
        that updated the state, if not ambiguous.
        N)r¶  r    r¹  s        r¿   Úaupdate_statezPregel.aupdate_stateà	  sU   è è € ð ×,Ò,Ø•k &¨'°7Ñ;Ô;Ð<Ð=ñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rÁ   )Ú
durabilityú!StreamMode | Sequence[StreamMode]Ú
print_modeÚoutput_keysÚinterrupt_beforeúAll | Sequence[str] | NoneÚinterrupt_afterr¾  úDurability | Noneú¡tuple[set[StreamMode], str | Sequence[str], All | Sequence[str], All | Sequence[str], BaseCheckpointSaver | None, BaseStore | None, BaseCache | None, Durability]c               ór  — |d         dk     rt          d¦  «        ‚|€| j        }nt          || j        ¦  «         |p| j        }|p| j        }t          |t          ¦  «        r|h}nt          |¦  «        }t          |t          ¦  «        r| 	                    |¦  «         n| 
                    |¦  «         | j        du rd }	nZt          |                     t          i ¦  «        v r|t                   t                   }	n| j        du rt          d¦  «        ‚| j        }	t          |	t           ¦  «        r|                      |	¦  «        }	|	r)|                     t          ¦  «        st          d¦  «        ‚t$          |                     t          i ¦  «        v r|t                   t$                   j        }
n| j        }
t(          |                     t          i ¦  «        v r|t                   t(                   }n| j        }|€4|                     t          i ¦  «                             t,          d¦  «        }|||||	|
||fS )	NÚrecursion_limitrl  z"recursion_limit must be at least 1FTz1checkpointer=True cannot be used for root graphs.zoCheckpointer requires one or more of the following 'configurable' keys: thread_id, checkpoint_ns, checkpoint_idÚasync)rÅ   rÄ  r�   rÊ   r6  r5  rÍ   rÃ   r  Úaddrî   r;  r:   r[  r6   ÚRuntimeErrorr$   re  r?   r=  r7   r?  r;   )r¾   rC  r  rÀ  rÁ  rÂ  rÄ  r¾  Ústream_modesr;  r=  r?  s               r¿   Ú	_defaultszPregel._defaultsï	  s7  € ð( Ð#Ô$ qÒ(Ð(ÝÐAÑBÔBÐBØÐØÔ3ˆKˆKå˜+ t¤}Ñ5Ô5Ð5Ø+ÐJ¨tÔ/JÐØ)ÐG¨TÔ-GˆÝ�k¥3Ñ'Ô'ð 	,Ø'˜=ˆLˆLå˜{Ñ+Ô+ˆLÝ�j¥#Ñ&Ô&ð 	,Ø×Ò˜ZÑ(Ô(Ð(Ð(à×Ò 
Ñ+Ô+Ð+ØÔ Ð%Ð%Ø7;ˆLˆLÝ$¨¯
ª
µ4¸Ñ(<Ô(<Ð<Ð<Ø!¥$œ<Õ(?Ô@ˆLˆLØÔ $Ð&Ð&ÝÐRÑSÔSÐSàÔ,ˆLÝ�lÕ$7Ñ8Ô8ð 	LØ×=Ò=¸lÑKÔKˆLØð 	 §
¢
­4Ñ 0Ô 0ð 	Ýð@ñô ð õ  §¢­D°"Ñ!5Ô!5Ð5Ð5Ø&,­T¤lÕ3EÔ&FÔ&LˆEˆEà”JˆEÝ˜vŸzšz­$°Ñ3Ô3Ð3Ð3Ø&,­T¤lÕ3CÔ&DˆEˆEà”JˆEØÐØŸš¥D¨"Ñ-Ô-×1Ò1Õ2GÈÑQÔQˆJàØØØØØØØð	
ð 		
rÁ   )
Úcontextr  rÀ  rÁ  rÂ  rÄ  r¾  Úcontrolr	  r:  rZ  úInputT | Command | NonerÎ  úContextT | Noneú(StreamMode | Sequence[StreamMode] | NonerÏ  úRunControl | NoneÚversionúLiteral['v2']ú%Iterator[StreamPart[StateT, OutputT]]c               ó   — d S r¼   r  ©r¾   rZ  rC  rÎ  r  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  r	  r:  rÔ  rÙ   s                  r¿   ÚstreamzPregel.stream7
  s	   € ð$ 14°rÁ   .)rÎ  r  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  r	  r:  rÔ  úLiteral['v1']úIterator[dict[str, Any] | Any]c               ó   — d S r¼   r  rØ  s                  r¿   rÙ  zPregel.streamK
  s	   € ð$ *-¨rÁ   Úv1úLiteral['v1', 'v2']c             +  óÄ  ‡+‡,‡-‡.K  — |                      d¦  «        x}�3t          j        dt          d¬¦  «         |	�t	          d¦  «        ‚|rdnd}	|€-|�$t
          |                      t          i ¦  «        v rd	n| j        }|s| j        rd
d	g}t          ¦   «         Š-t          | j        |¦  «        }d}	 |                      |||||||	¬¦  «        \  }}}}}}}}t          |¦  «        }d|v r2|dk    r,d„ |j        D ¦   «         |_        d„ |j        D ¦   «         |_        d|j        vr|                     ddi¦  «         |                     d||                      d|                      ¦   «         ¦  «        |                      d¦  «        ¬¦  «        }t)          ||j        ¬¦  «        Š+|€|	�t          j        d¦  «         | j        du rMt/          t0          |t                   t2                   ¦  «        }t5          |¦  «        |t                   t2          <   d|v r×t/          t0          dz  |t                                         t2          ¦  «        ¦  «        }t7          |dk    o$|t                                         t8          ¦  «        ¦  «        }|rt:          nt<          }|j                              |‰-j         ||r'tC          | "                    tF          ¦  «        ¦  «        nd¬¦  «        ¦  «         d|v r“t/          t0          dz  |t                                         t2          ¦  «        ¦  «        }|j                             tI          ‰-j         ||r'tC          | "                    tF          ¦  «        ¦  «        nd¬¦  «        ¦  «         d|v rdGˆ-fd„}n6tJ          |t                   v r|t                   tL                   j'        }ndGd „}|	�||t                   tP          <   tS          |t                                         tL          tT          ¦  «        ¦  «        }tW          ||¦  «        } tY          t[          | j.        |¦  «        ||dd| |
p|j/        pta          ¦   «         ¬!¦  «        }!| 1                    |!¦  «        }!|!|t                   tL          <   |dk    r| j2        nd}"|dk    r| j3        nd}#dHˆ+fd$„}$ti          |fi d%tk          ‰-j         |¦  «        “d&|“d'|“d(|“d)|“d*| j6        “d+| j7        “d,|“d-| j8        “d.| j9        “d/|“d0|“d1|“d2|“d3| j:        “d4| j;        “d5| j<        “d6| j=        “d7t7          ‰+j        ¦  «        “Ž5 Š, |$‰,¦  «         t}          |t                                         t~          t�          jA        ‰,jB        ¦  «        ¦  «        t�          jA        ‰,jC        ¦  «        |t                                         tˆ          ¦  «        | jE        ‰,jF        ¬8¦  «        }%|r‰,jG        ‰,j        t                   tJ          <   d}&| jH        s
|sd|v sd|v r.dŠ.‰,jI         J                    ‰-jK        jL        ¦  «         dIˆ,ˆ-ˆ.fd:„}&‰, M                    ¦   «         rý‰, N                    ¦   «         D ]$}'‰, O                    |'jP        |'jQ        d¬;¦  «         Œ%|% M                    d<„ ‰,jR         S                    ¦   «         D ¦   «         | jT        |&‰,jU        ¬=¦  «        D ]-}(t­          |||‰-j         t®          jX        ||"|#¦  «        E d{V —† Œ.‰, Y                    ¦   «           |$‰,¦  «         |d>k    r‰,jZ         [                    ¦   «          ‰, M                    ¦   «         °ýddd¦  «         n# 1 swxY w Y    |$‰,¦  «         t­          |||‰-j         t®          jX        ||"|#¦  «        E d{V —† ‰,j\        d?k    r4t»          d@|dA         › dB�t¼          j_        ¬C¦  «        })tÁ          |)¦  «        ‚‰,j\        dDk    r1‰,j/        €tÃ          dE¦  «        ‚tÅ          ‰,j/        jc        pdF¦  «        ‚| d                    ‰,je        ¦  «         dS # tÌ          $ r}*|�| g                    |*¦  «         ‚ d}*~*ww xY w)JaG  Stream graph steps for a single input.

        Args:
            input: The input to the graph.
            config: The configuration to use for the run.
            context: The static context to use for the run.
                !!! version-added "Added in version 0.6.0"
            stream_mode: The mode to stream output, defaults to `self.stream_mode`.

                Options are:

                - `"values"`: Emit all values in the state after each step, including interrupts.
                    When used with functional API, values are emitted once at the end of the workflow.
                - `"updates"`: Emit only the node or task names and updates returned by the nodes or tasks after each step.
                    If multiple updates are made in the same step (e.g. multiple nodes are run) then those updates are emitted separately.
                - `"custom"`: Emit custom data from inside nodes or tasks using `StreamWriter`.
                - `"messages"`: Emit LLM messages token-by-token together with metadata for any LLM invocations inside nodes or tasks.
                    - Will be emitted as 2-tuples `(LLM token, metadata)`.
                - `"checkpoints"`: Emit an event when a checkpoint is created, in the same format as returned by `get_state()`.
                - `"tasks"`: Emit events when tasks start and finish, including their results and errors.
                - `"debug"`: Emit debug events with as much information as possible for each step.

                You can pass a list as the `stream_mode` parameter to stream multiple modes at once.
                The streamed outputs will be tuples of `(mode, data)`.

                See [LangGraph streaming guide](https://docs.langchain.com/oss/python/langgraph/streaming) for more details.
            print_mode: Accepts the same values as `stream_mode`, but only prints the output to the console, for debugging purposes.

                Does not affect the output of the graph in any way.
            output_keys: The keys to stream, defaults to all non-context channels.
            interrupt_before: Nodes to interrupt before, defaults to all nodes in the graph.
            interrupt_after: Nodes to interrupt after, defaults to all nodes in the graph.
            durability: The durability mode for the graph execution, defaults to `"async"`.

                Options are:

                - `"sync"`: Changes are persisted synchronously before the next step starts.
                - `"async"`: Changes are persisted asynchronously while the next step executes.
                - `"exit"`: Changes are persisted only when the graph exits.
            control: Optional run control used to request cooperative drain.
            subgraphs: Whether to stream events from inside subgraphs, defaults to `False`.

                If `True`, the events will be emitted as tuples `(namespace, data)`,
                or `(namespace, mode, data)` if `stream_mode` is a list,
                where `namespace` is a tuple with the path to the node where a subgraph is invoked,
                e.g. `("parent_node:<task_id>", "child_node:<task_id>")`.

                See [LangGraph streaming guide](https://docs.langchain.com/oss/python/langgraph/streaming) for more details.

        Yields:
            The output of each step in the graph. The output shape depends on the `stream_mode`.
        Úcheckpoint_duringNúW`checkpoint_during` is deprecated and will be removed. Please use `durability` instead.rT  rU  úaCannot use both `checkpoint_during` and `durability` parameters. Please use `durability` instead.rÉ  Úexitr.  rO  ©r  rÀ  rÁ  rÂ  rÄ  r¾  ÚmessagesÚv2c                ó<   — g | ]}t          |t          ¦  «        °|‘ŒS r  ©rÍ   rx   ©rÞ   Úhs     r¿   r  z!Pregel.stream.<locals>.<listcomp>Ü
  ó9   € ð -ð -ð -àÝ% aÕ)@ÑAÔAð-Øð-ð -ð -rÁ   c                ó<   — g | ]}t          |t          ¦  «        °|‘ŒS r  rè  ré  s     r¿   r  z!Pregel.stream.<locals>.<listcomp>á
  ó9   € ð 9ð 9ð 9àÝ% aÕ)@ÑAÔAð9Øð9ð 9ð 9rÁ   Úls_integrationÚ	langgraphrz  Úrun_id©rÕ   rð  ©rð  ú;`durability` has no effect when no checkpointer is present.T©r  ÚtoolsÚcustomrß   r   r¹   rº   c                óÖ   •— ‰                      t          t          ¦   «         t                   t                                        t          ¦  «        d d…         ¦  «        d| f¦  «         d S ©Nrî  rö  )rˆ  r^  r]   r6   r9   ÚsplitrI   )rß   rÙ  s    €r¿   Ústream_writerz$Pregel.stream.<locals>.stream_writer  sn   ø€ Ø—J’Jå!Ý *¡¤­TÔ 2Õ3KÔ L× RÒ RÝ$*ñ!"ô !"à"% 2 #ô!'ñô ð
 %Øðñ
ô 
ð 
ð 
ð 
rÁ   c                ó   — d S r¼   r  ©rß   s    r¿   rú  z$Pregel.stream.<locals>.stream_writer+  ó   € Ø�DrÁ   ©rÎ  r=  rú  ÚpreviousÚexecution_infoÚserver_inforÏ  Úlooprv   c                ó4  •— |                       ¦   «         x}�€t          |t          ¦  «        r*‰                     t	          |‰j        ¬¦  «        ¦  «         n)‰                     t	          |‰j        ¬¦  «        ¦  «         |                       ¦   «         x}­~d S d S )Nrò  )Ú_pop_lifecycle_eventrÍ   rX   Ú	on_resumer   rð  Úon_interrupt©r  ÚeventÚgraph_callback_managers     €r¿   Úemit_graph_lifecycle_eventsz2Pregel.stream.<locals>.emit_graph_lifecycle_eventsH  s±   ø€ Ø $× 9Ò 9Ñ ;Ô ;Ð;�uÐHÝ! %Õ)9Ñ:Ô:ð Ø.×8Ò8Ý# EÐ2HÔ2OÐPÑPÔPñô ð ð ð /×;Ò;Ý# EÐ2HÔ2OÐPÑPÔPñô ð ð !%× 9Ò 9Ñ ;Ô ;Ð;�uÐHÐHÐHÐHÐHrÁ   rÙ  rC  r=  r?  r;  r-  r  rÁ  Ú
input_keysÚstream_keysrÂ  rÄ  ró  r¾  rF  Úmigrate_checkpointrþ   rÿ   Úhas_graph_lifecycle_callbacks)Úsubmitr‰  Únode_finishedrG  Úschedule_error_handlerúconcurrent.futures.Future[None]c                 ól   •— ‰�‰                      ¦   «         r‰                      ‰j        ¦  «        Š‰S ‰S r¼   )Údoner  Úwait)r  rÙ  Úwaiters   €€€r¿   Ú
get_waiterz!Pregel.stream.<locals>.get_waiter‡  s1   ø€ à!˜>¨V¯[ª[©]¬]˜>Ø%)§[¢[°´Ñ%=Ô%=˜FØ#)˜Mà#)˜MrÁ   ©Úcachedc                ó    — g | ]}|j         °	|‘ŒS r  rþ  r   s     r¿   r  z!Pregel.stream.<locals>.<listcomp>˜  s   € ÐHÐHÐH˜q¸q¼xÐH˜ÐHÐHÐHrÁ   ©rö   r  Úschedule_taskÚsyncÚout_of_stepsúRecursion limit of rÈ  úr reached without hitting a stop condition. You can increase the limit by setting the `recursion_limit` config key.©ÚmessageÚ
error_codeÚdrainingú$Draining status requires run controlÚshutdown©rß   r   r¹   rº   )r  rv   r¹   rº   )r¹   r  )hr[  r\  r]  r©   rÅ   rC   r6   r  r:  rO   r/   rC  rÍ  r    ÚhandlersÚinheritable_handlersrì   Úadd_metadataÚon_chain_startrž  rZ   rð  r;  r   rÃ   r9   r4   rË   rB   rx   rw   rÆ   rˆ  r^  rù  rI   r}   rA   r?   rú  r;   Ú_coerce_parent_runtimerŠ   Ú_build_server_infor�   Ú_coerce_contextrA  rÏ  rŒ   ÚmergerØ  rÙ  rv   r‰   r-  rÊ   r7  rÄ  rF  râ  rþ   rÿ   r|   r>   ÚweakrefÚ
WeakMethodr  r‰  r<   rG  r  rÙ  r/  ÚstackÚcallbackÚ_countÚreleaseÚtickÚmatch_cached_writesÚoutput_writesr  rÿ  rë  r.  r9  Úaccept_pushÚ_outputÚqueueÚEmptyÚ
after_tickÚ_put_checkpoint_futÚresultÚstatusrc   r_   ÚGRAPH_RECURSION_LIMITra   rË  r`   Údrain_reasonÚon_chain_endÚoutputÚBaseExceptionÚon_chain_error)/r¾   rZ  rC  rÎ  r  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  r	  r:  rÔ  rÙ   rà  Úrun_managerrÌ  Úinterrupt_before_Úinterrupt_after_r;  r=  r?  Údurability_Úcallback_managerr0  Úns_Úuse_stream_messages_v2Úmessages_handler_clsÚns_toolsrú  Úparent_runtimer  ÚruntimerØ  rÙ  r
  Úrunnerr  r
  r.  ÚmsgÚer	  r  rÙ  r  s/                                              @@@@r¿   rÙ  zPregel.stream_
  s½
  øøøøè è € ðL "(§¢Ð,?Ñ!@Ô!@Ð@ÐÐMÝŒMØiÝ4Øðñ ô ð ð
 Ð%Ý Øwñô ð ð %6ÐA˜˜¸6ˆJàÐð
 Ð%Õ*<ÀÇ
Â
Í4ÐQSÑ@TÔ@TÐ*TÐ*Tð �àÔ%ð ð
 ð 	/�D”Jð 	/Ø# XÐ.ˆJå‘”ˆå˜tœ{¨FÑ3Ô3ˆØˆðM	ð —’ØØ'Ø%Ø'Ø!1Ø /Ø%ð ñ ô ñ	ØØØ!Ø ØØØØõ  ?¸vÑFÔFÐØ˜\Ð)Ð)¨g¸ªo¨oð-ð -à-Ô6ð-ñ -ô -Ð Ô)ð
9ð 9à-ÔBð9ñ 9ô 9Ð Ô5ð
  Ð'7Ô'@Ð@Ð@Ø ×-Ò-Ð/?ÀÐ.MÑNÔNÐNØ*×9Ò9ØØØ—Z’Z 
¨D¯MªM©O¬OÑ<Ô<Ø—z’z (Ñ+Ô+ð	 :ñ ô ˆKõ &PØØ"Ô)ð&ñ &ô &Ð"ð Ð#¨
Ð(>Ý”ØQñô ð ð Ô  DÐ(Ð(Ý�#˜v¥dœ|Õ,DÔEÑFÔF�Ý9MÈbÑ9QÔ9Q�•t”Õ5Ñ6à˜\Ð)Ð)Ý�3 ™: v­d¤|×'7Ò'7Õ8PÑ'QÔ'QÑRÔR�Ý)-Ø˜t’OÐW¨­t¬×(8Ò(8Õ9VÑ(WÔ(Wñ*ô *Ð&ð
 .ð/Õ+Ð+å.ð %ð
 Ô0×7Ò7Ø(Ð(Øœ
Ø!Ø>AÐ"K¥%¨¯	ª	µ&Ñ(9Ô(9Ñ":Ô":Ð":Àtðñ ô ñô ð ð ˜,Ð&Ð&Ý¥ d¡
¨Fµ4¬L×,<Ò,<Õ=UÑ,VÔ,VÑWÔW�ØÔ0×7Ò7Ý)Øœ
Ø!ØCKÐ"U¥%¨¯ªµvÑ(>Ô(>Ñ"?Ô"?Ð"?ÐQUðñ ô ñô ð ð ˜<Ð'Ð'ðð ð ð ð ð ð õ # f­T¤lÐ2Ð2Ø &¥t¤Õ-?Ô @Ô N��ðð ð ð ð Ð%Ø6A�•t”Õ2Ñ3õ 4Ø•t”× Ò Õ!3µ_ÑEÔEñô ˆNõ -¨V°^ÑDÔDˆKåÝ'¨Ô(;¸WÑEÔEØØ+ØØ#Ø'ØÐI >Ô#9ÐI½Z¹\¼\ðñ ô ˆGð %×*Ò*¨7Ñ3Ô3ˆGØ/6ˆF•4ŒLÕ+Ñ,ð 5<¸t²O°O˜TÔ0Ð0ÈˆNØ29¸T²/°/˜DÔ.Ð.ÀtˆMð	ð 	ð 	ð 	ð 	ð 	õ  Øðð ð å% f¤j°,Ñ?Ô?Ð?ðð �vðð �eð	ð
 �eðð *˜\ðð ”j�jðð ”m�mðð (˜Kðð  Ô.Ð.ðð !Ô5Ð5ðð "3Ð!2ðð !1Ð 0ðð $˜ðð '˜;ðð  "&Ô!6Ð!6ð!ð" $(Ô#;Ð#;ð#ð$ "Ô.Ð.ð%ð& "Ô.Ð.ð'õ( /3Ð3IÔ3RÑ.SÔ.SÐ.Sð)ð Y:ð* Ø+Ð+¨DÑ1Ô1Ð1å%Ø!¥$œ<×+Ò+Ý0µ'Ô2DÀTÄ[Ñ2QÔ2Qñô õ  'Ô1°$´/ÑBÔBØ"(­¤,×"2Ò"2Õ3KÑ"LÔ"LØ+/Ô+FØ+/Ô+Fðñ ô �ð ð GØ;?¼;�D”K¥Ô%Õ&7Ñ8àSW�
àÔ%ð*à ð*ð " \Ð1Ð1Ø <Ð/Ð/ð @D�Fð ”J×'Ò'¨¬Ô(=Ñ>Ô>Ð>ð*ð *ð *ð *ð *ð *ð *ð *ð —i’i‘k”kð :Ø $× 8Ò 8Ñ :Ô :ð Nð N˜Ø×*Ò*¨4¬7°D´KÈÐ*ÑMÔMÐMÐMØ#Ÿ[š[ØHÐH D¤J×$5Ò$5Ñ$7Ô$7ÐHÑHÔHØ $Ô 1Ø#-Ø&*Ô&6ð	 )ñ ô ð ð ˜õ $+Ø'Ø&Ø%Ø"œJÝ!œKØ#Ø*Ø)ñ	$ô 	$ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð —O’OÑ%Ô%Ð%Ø/Ð/°Ñ5Ô5Ð5à" fÒ,Ð,ØÔ0×7Ò7Ñ9Ô9Ð9ð1 —i’i‘k”kð :ðCY:ð Y:ð Y:ñ Y:ô Y:ð Y:ð Y:ð Y:ð Y:ð Y:ð Y:øøøð Y:ð Y:ð Y:ð Y:ðt (Ð'¨Ñ-Ô-Ð-åØØØØ”
Ý”ØØØñ	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð Œ{˜nÒ,Ð,Ý*ðM¨fÐ5FÔ.Gð Mð Mð Mõ  )Ô>ðñ ô �õ *¨#Ñ.Ô.Ð.Ø” 
Ò*Ð*Ø”<Ð'Ý&Ð'MÑNÔNÐNÝ" 4¤<Ô#<Ð#JÀ
ÑKÔKÐKà×$Ò$ T¤[Ñ1Ô1Ð1Ð1Ð1øÝð 	ð 	ð 	ØÐ&Ø×*Ò*¨1Ñ-Ô-Ð-Øøøøøð	øøøs?   Â3R`8 ÕH] Ý`8 Ý ]$Ý$`8 Ý']$Ý(C`8 à8
aáaáaú*AsyncIterator[StreamPart[StateT, OutputT]]c               ó   — d S r¼   r  rØ  s                  r¿   ÚastreamzPregel.astreamÏ  s	   € ð$ 69°SrÁ   ú#AsyncIterator[dict[str, Any] | Any]c               ó   — d S r¼   r  rØ  s                  r¿   rW  zPregel.astreamã  s	   € ð$ /2¨crÁ   c              ó°  ‡0‡1‡2‡3K  — |                      d¦  «        x}�3t          j        dt          d¬¦  «         |	�t	          d¦  «        ‚|rdnd}	|€-|�$t
          |                      t          i ¦  «        v rd	n| j        }|s| j        rd
d	g}t          ¦   «         Š2t          j        ¦   «         Š0t          t          t          gdf         t          ‰0j        ‰2j        ¦  «        ¦  «        }t%          | j        |¦  «        }d}	 |                      |||||||	¬¦  «        \  }}}}}}}}t+          |¦  «        }d|v r2|dk    r,d„ |j        D ¦   «         |_        d„ |j        D ¦   «         |_        d|j        vr|                     ddi¦  «         |                     d||                      d|                      ¦   «         ¦  «        |                      d¦  «        ¬¦  «        ƒ d{V —†}t9          ||j        ¬¦  «        Š1t<          �t?          d„ |j        D ¦   «         d¦  «        nd}|€|	�t          j        d¦  «         | j         du rMt          tB          |t                   tD                   ¦  «        }tG          |¦  «        |t                   tD          <   d|v rÒt          tB          dz  |t                                         tD          ¦  «        ¦  «        }tI          |dk    o$|t                                         tJ          ¦  «        ¦  «        }|rtL          ntN          }|j         (                     ||||r'tS          | *                    tV          ¦  «        ¦  «        nd¬¦  «        ¦  «         d|v rŽt          tB          dz  |t                                         tD          ¦  «        ¦  «        }|j         (                    tY          |||r'tS          | *                    tV          ¦  «        ¦  «        nd¬¦  «        ¦  «         dKˆ0ˆ2fd „} d!|v rdKˆ0ˆ2fd"„} n6tZ          |t                   v r|t                   t\                   j/        } ndKd#„} |	�||t                   t`          <   tc          |t                                         t\          td          ¦  «        ¦  «        }!tg          ||!¦  «        }"ti          tk          | j6        |¦  «        || dd|"|
p|!j7        ptq          ¦   «         ¬$¦  «        }#|! 9                    |#¦  «        }#|#|t                   t\          <   |dk    r| j:        nd}$|dk    r| j;        nd}%dLˆ1fd'„}&ty          |fi d(t{          ‰2j        |¦  «        “d)|“d*|“d+|“d,|“d-| j>        “d.| j?        “d/|“d0| j@        “d1| jA        “d2|“d3|“d4|“d5|“d6| jB        “d7| jC        “d8| jD        “d9| jE        “d:tI          ‰1j        ¦  «        “Ž4 ƒd{V —†	 }' |&|'¦  «        ƒ d{V —† t�          |t                                         tŽ          t‘          jI        |'jJ        ¦  «        ¦  «        t‘          jI        |'jK        ¦  «        ||t                                         t˜          ¦  «        | jM        |'jN        ¬;¦  «        }(|r(t{          ||¦  «        |'j        t                   tZ          <   d})d}*| jO        s
|sd|v sd!|v rdŠ3dMˆ0ˆ2ˆ3fd=„})dNˆ2ˆ3fd>„}*	 |' P                    ¦   «         �r|' Q                    ¦   «         ƒ d{V —†D ]$}+|' R                    |+jS        |+jT        d¬?¦  «         Œ%|( U                    d@„ |'jV         W                    ¦   «         D ¦   «         | jX        |)|'jY        ¬A¦  «        2 3 d{V —†},tµ          |||‰2j[        t          j\        ||$|%¦  «        D ]}-|-W V — ŒŒ56 |' ]                    ¦   «           |&|'¦  «        ƒ d{V —† |dBk    r%t          t          j^        |'j_        ¦  «        ƒ d{V —† |' P                    ¦   «         �°|*� |*¦   «         ƒ d{V —† n# |*� |*¦   «         ƒ d{V —† w w xY wddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y    |&|'¦  «        ƒ d{V —† tµ          |||‰2j[        t          j\        ||$|%¦  «        D ]}-|-W V — Œ|'j`        dCk    r4tÃ          dD|dE         › dF�tÄ          jc        ¬G¦  «        }.tÉ          |.¦  «        ‚|'j`        dHk    r1|'j7        €tË          dI¦  «        ‚tÍ          |'j7        jg        pdJ¦  «        ‚| h                    |'ji        ¦  «        ƒ d{V —† dS # tÔ          $ r5}/|�-t          jk        | l                    |/¦  «        ¦  «        ƒ d{V —† ‚ d}/~/ww xY w)OaV  Asynchronously stream graph steps for a single input.

        Args:
            input: The input to the graph.
            config: The configuration to use for the run.
            context: The static context to use for the run.
                !!! version-added "Added in version 0.6.0"
            stream_mode: The mode to stream output, defaults to `self.stream_mode`.

                Options are:

                - `"values"`: Emit all values in the state after each step, including interrupts.
                    When used with functional API, values are emitted once at the end of the workflow.
                - `"updates"`: Emit only the node or task names and updates returned by the nodes or tasks after each step.
                    If multiple updates are made in the same step (e.g. multiple nodes are run) then those updates are emitted separately.
                - `"custom"`: Emit custom data from inside nodes or tasks using `StreamWriter`.
                - `"messages"`: Emit LLM messages token-by-token together with metadata for any LLM invocations inside nodes or tasks.
                    - Will be emitted as 2-tuples `(LLM token, metadata)`.
                - `"checkpoints"`: Emit an event when a checkpoint is created, in the same format as returned by `get_state()`.
                - `"tasks"`: Emit events when tasks start and finish, including their results and errors.
                - `"debug"`: Emit debug events with as much information as possible for each step.

                You can pass a list as the `stream_mode` parameter to stream multiple modes at once.
                The streamed outputs will be tuples of `(mode, data)`.

                See [LangGraph streaming guide](https://docs.langchain.com/oss/python/langgraph/streaming) for more details.
            print_mode: Accepts the same values as `stream_mode`, but only prints the output to the console, for debugging purposes.

                Does not affect the output of the graph in any way.
            output_keys: The keys to stream, defaults to all non-context channels.
            interrupt_before: Nodes to interrupt before, defaults to all nodes in the graph.
            interrupt_after: Nodes to interrupt after, defaults to all nodes in the graph.
            durability: The durability mode for the graph execution, defaults to `"async"`.

                Options are:

                - `"sync"`: Changes are persisted synchronously before the next step starts.
                - `"async"`: Changes are persisted asynchronously while the next step executes.
                - `"exit"`: Changes are persisted only when the graph exits.
            control: Optional run control used to request cooperative drain.
            subgraphs: Whether to stream events from inside subgraphs, defaults to `False`.

                If `True`, the events will be emitted as tuples `(namespace, data)`,
                or `(namespace, mode, data)` if `stream_mode` is a list,
                where `namespace` is a tuple with the path to the node where a subgraph is invoked,
                e.g. `("parent_node:<task_id>", "child_node:<task_id>")`.

                See [LangGraph streaming guide](https://docs.langchain.com/oss/python/langgraph/streaming) for more details.

        Yields:
            The output of each step in the graph. The output shape depends on the `stream_mode`.
        rà  Nrá  rT  rU  râ  rÉ  rã  r.  rO  rä  rå  ræ  c                ó<   — g | ]}t          |t          ¦  «        °|‘ŒS r  rè  ré  s     r¿   r  z"Pregel.astream.<locals>.<listcomp>y  rë  rÁ   c                ó<   — g | ]}t          |t          ¦  «        °|‘ŒS r  rè  ré  s     r¿   r  z"Pregel.astream.<locals>.<listcomp>~  rí  rÁ   rî  rï  rz  rð  rñ  rò  c              3  ón   K  — | ]0}t          |t          ¦  «        ¯t          |t          ¦  «        °,d V — Œ1dS )TN)rÍ   rª   rw   ré  s     r¿   rà   z!Pregel.astream.<locals>.<genexpr>’  s\   è è € ð ð àÝ% aÕ)BÑCÔCðõ !+¨1Õ.CÑ DÔ Dð	Øðð ð ð ð ð rÁ   Fró  Trô  rõ  rß   r   r¹   rº   c                óâ   •— ‰                      ‰j        t          t          ¦   «         t                   t
                                        t          ¦  «        d d…         ¦  «        d| f¦  «         d S rø  ©Úcall_soon_threadsafeÚ
put_nowaitr^  r]   r6   r9   rù  rI   ©rß   ÚaiolooprÙ  s    €€r¿   rú  z%Pregel.astream.<locals>.stream_writerÅ  sq   ø€ Ø×,Ò,ØÔ%åÝ&™LœL­Ô.Õ/GÔH×NÒNÍvÑVÔVØ #  ôñô ð
 !Øðñô ð ð ð rÁ   rö  c                óâ   •— ‰                      ‰j        t          t          ¦   «         t                   t
                                        t          ¦  «        d d…         ¦  «        d| f¦  «         d S rø  r_  rb  s    €€r¿   rú  z%Pregel.astream.<locals>.stream_writerÕ  sv   ø€ Ø×0Ò0ØÔ)å!Ý *¡¤­TÔ 2Õ3KÔ L× RÒ RÝ$*ñ!"ô !"à"% 2 #ô!'ñô ð
 %Øðñô ð ð ð rÁ   c                ó   — d S r¼   r  rü  s    r¿   rú  z%Pregel.astream.<locals>.stream_writeræ  rý  rÁ   rþ  r  ru   c           	   “  ó   •K  — |                       ¦   «         x}�´t          |t          ¦  «        rA‰                     t          ‰j        |j        |j        |j        ¬¦  «        ¦  «        ƒ d {V —† nF‰                     t          ‰j        |j        |j        |j        |j
        ¬¦  «        ¦  «        ƒ d {V —† |                       ¦   «         x}­²d S d S )N)rð  r@  Úcheckpoint_idr,  )rð  r@  rg  r,  rì  )r  rÍ   rX   r  rð  r@  rg  r,  r  rW   rì  r  s     €r¿   Úaemit_graph_lifecycle_eventsz4Pregel.astream.<locals>.aemit_graph_lifecycle_events  s!  øè è € Ø $× 9Ò 9Ñ ;Ô ;Ð;�uÐHÝ! %Õ)9Ñ:Ô:ð Ø4×>Ò>Ý,Ø'=Ô'DØ',¤|Ø.3Ô.AØ.3Ô.Að	ñ ô ñô ð ð ð ð ð ð ð ð ð 5×AÒAÝ/Ø'=Ô'DØ',¤|Ø.3Ô.AØ.3Ô.AØ+0Ô+;ðñ ô ñô ð ð ð ð ð ð ð ð !%× 9Ò 9Ñ ;Ô ;Ð;�uÐHÐHÐHÐHÐHrÁ   rÙ  rC  r=  r?  r;  r-  r  rÁ  r  r  rÂ  rÄ  ró  r¾  rF  r  rþ   rÿ   r  )r  r‰  Úuse_astreamr  rG  Úaschedule_error_handlerúasyncio.Task[None]c                 ó¸   •— ‰�‰                      ¦   «         rB‰                     ‰                     ¦   «         ¦  «        Šdˆfd„} ‰                     | ¦  «         ‰S )Nr  rk  r¹   rº   c                ó   •— ‰| u rd Šd S d S r¼   r  )r  r  s    €r¿   Ú_clearz2Pregel.astream.<locals>.get_waiter.<locals>._clearQ  s   ø€ à#)¨Q ; ;Ø-1 F F Fð $/ ;rÁ   )r  rk  r¹   rº   )r  Úcreate_taskr  Úadd_done_callback)rn  rc  rÙ  r  s    €€€r¿   r  z"Pregel.astream.<locals>.get_waiterL  sh   ø€ à!˜>¨V¯[ª[©]¬]˜>Ø%,×%8Ò%8¸¿º¹¼Ñ%GÔ%G˜Fð2ð 2ð 2ð 2ð 2ð 2ð
 #×4Ò4°VÑ<Ô<Ð<Ø%˜rÁ   c               “  ó¢  •K  — t          j        t          ¦  «        5  t          ‰d¦  «        r‰j                             ¦   «          ddd¦  «         n# 1 swxY w Y   ‰} dŠ| �i|                      ¦   «         sW|                      ¦   «          t          j        t          j	        ¦  «        5  | ƒ d{V —† ddd¦  «         dS # 1 swxY w Y   dS dS dS )z?Wake pending waiter and/or cancel+await to avoid pending tasks.r4  N)
Ú
contextlibÚsuppressÚ	ExceptionÚhasattrr4  r5  r  Úcancelrx  ÚCancelledError)r  rÙ  r  s    €€r¿   Ú_cleanup_waiterz'Pregel.astream.<locals>._cleanup_waiterY  sS  øè è € õ (Ô0µÑ;Ô;ð 8ð 8Ý& v¨xÑ8Ô8ð 8Ø &¤× 5Ò 5Ñ 7Ô 7Ð 7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð #˜Ø!%˜Ø˜=°·²±´˜=ØŸHšH™JœJ˜JÝ!+Ô!4µWÔ5KÑ!LÔ!Lð (ð (Ø&'       ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (ð )˜=˜=˜=s#   �*AÁAÁAÂ*	C Ã CÃCr  c                ó    — g | ]}|j         °	|‘ŒS r  rþ  r   s     r¿   r  z"Pregel.astream.<locals>.<listcomp>q  s   € ÐLÐLÐL 1À1Ä8ÐL˜QÐLÐLÐLrÁ   r  r  r  r  rÈ  r   r!  r$  r%  r&  r'  )r  ru   r¹   rº   )r¹   rk  r  )mr[  r\  r]  r©   rÅ   rC   r6   r  r:  rN   rx  Úget_running_loopr   r   rˆ   r   r`  ra  r/   rC  rÍ  r   r(  r)  rì   r*  r+  rž  rY   rð  rª   rè  r;  rÃ   r9   r4   rË   rB   rx   rw   rÆ   r^  rù  rI   r}   rA   r?   rú  r;   r,  rŠ   r-  r�   r.  rA  rÏ  rŒ   r/  rØ  rÙ  ru   r‰   r-  rÊ   r7  rÄ  rF  râ  rþ   rÿ   r|   r>   r0  r1  r  r‰  r<   rG  rj  r/  r6  Úamatch_cached_writesr8  r  rÿ  Úatickrë  r.  r9  Úaaccept_pushr:  Ú
get_nowaitÚ
QueueEmptyr=  ÚFuturer>  r@  rc   r_   rA  ra   rË  r`   rB  rC  rD  rE  ÚshieldrF  )4r¾   rZ  rC  rÎ  r  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  r	  r:  rÔ  rÙ   rà  Ú
stream_putrG  rÌ  rH  rI  r;  r=  r?  rJ  rK  Ú	do_streamr0  rL  rM  rN  rO  rú  rP  r  rQ  rØ  rÙ  rh  r  rR  r  rx  r
  r.  ÚorS  rT  rc  r	  rÙ  r  s4                                                   @@@@r¿   rW  zPregel.astream÷  s  øøøøè è € ðL "(§¢Ð,?Ñ!@Ô!@Ð@ÐÐMÝŒMØiÝ4Øðñ ô ð ð
 Ð%Ý Øwñô ð ð %6ÐA˜˜¸6ˆJàÐð
 Ð%Õ*<ÀÇ
Â
Í4ÐQSÑ@TÔ@TÐ*TÐ*Tð �àÔ%ð ð
 ð 	/�D”Jð 	/Ø# XÐ.ˆJå‘”ˆÝÔ*Ñ,Ô,ˆÝÝ•k�] DÐ(Ô)Ý�GÔ0°&Ô2CÑDÔDñ
ô 
ˆ
õ
 ˜tœ{¨FÑ3Ô3ˆØˆðQ	ð —’ØØ'Ø%Ø'Ø!1Ø /Ø%ð ñ ô ñ	ØØØ!Ø ØØØØõ  EÀVÑLÔLÐØ˜\Ð)Ð)¨g¸ªo¨oð-ð -à-Ô6ð-ñ -ô -Ð Ô)ð
9ð 9à-ÔBð9ñ 9ô 9Ð Ô5ð
  Ð'7Ô'@Ð@Ð@Ø ×-Ò-Ð/?ÀÐ.MÑNÔNÐNØ 0× ?Ò ?ØØØ—Z’Z 
¨D¯MªM©O¬OÑ<Ô<Ø—z’z (Ñ+Ô+ð	 !@ñ !ô !ð ð ð ð ð ð ˆKõ &QØØ"Ô)ð&ñ &ô &Ð"õ -Ð8õ ðð à!,Ô!5ðñ ô ð ñô ð ð ð ð Ð#¨
Ð(>Ý”ØQñô ð ð Ô  DÐ(Ð(Ý�#˜v¥dœ|Õ,DÔEÑFÔF�Ý9MÈbÑ9QÔ9Q�•t”Õ5Ñ6à˜\Ð)Ð)å�3 ™: v­d¤|×'7Ò'7Õ8PÑ'QÔ'QÑRÔR�Ý)-Ø˜t’OÐW¨­t¬×(8Ò(8Õ9VÑ(WÔ(Wñ*ô *Ð&ð
 .ð/Õ+Ð+å.ð %ð
 Ô0×7Ò7Ø(Ð(Ø"Ø!Ø>AÐ"K¥%¨¯	ª	µ&Ñ(9Ô(9Ñ":Ô":Ð":Àtðñ ô ñô ð ð ˜,Ð&Ð&Ý¥ d¡
¨Fµ4¬L×,<Ò,<Õ=UÑ,VÔ,VÑWÔW�ØÔ0×7Ò7Ý)Ø"Ø!ØCKÐ"U¥%¨¯ªµvÑ(>Ô(>Ñ"?Ô"?Ð"?ÐQUðñ ô ñô ð ðð ð ð ð ð ð ð ˜<Ð'Ð'ðð ð ð ð ð ð ð õ # f­T¤lÐ2Ð2Ø &¥t¤Õ-?Ô @Ô N��ðð ð ð ð Ð%Ø6A�•t”Õ2Ñ3õ 4Ø•t”× Ò Õ!3µ_ÑEÔEñô ˆNõ -¨V°^ÑDÔDˆKåÝ'¨Ô(;¸WÑEÔEØØ+ØØ#Ø'ØÐI >Ô#9ÐI½Z¹\¼\ðñ ô ˆGð %×*Ò*¨7Ñ3Ô3ˆGØ/6ˆF•4ŒLÕ+Ñ,ð 5<¸t²O°O˜TÔ0Ð0ÈˆNØ29¸T²/°/˜DÔ.Ð.ÀtˆMðð ð ð ð ð õ, 'Øðð ð å% fÔ&7¸ÑFÔFÐFðð �vðð �eð	ð
 �eðð *˜\ðð ”j�jðð ”m�mðð (˜Kðð  Ô.Ð.ðð !Ô5Ð5ðð "3Ð!2ðð !1Ð 0ðð $˜ðð '˜;ðð  "&Ô!6Ð!6ð!ð" $(Ô#;Ð#;ð#ð$ "Ô.Ð.ð%ð& "Ô.Ð.ð'õ( /3Ð3IÔ3RÑ.SÔ.SÐ.Sð)ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð* Ø2Ð2°4Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8å%Ø!¥$œ<×+Ò+Ý0µ'Ô2DÀTÄ[Ñ2QÔ2Qñô õ  'Ô1°$´/ÑBÔBØ )Ø"(­¤,×"2Ò"2Õ3KÑ"LÔ"LØ+/Ô+FØ,0Ô,Hð	ñ 	ô 	�ð ð Ý;IØ" Lñ<ô <�D”K¥Ô%Õ&7Ñ8ð GK�
ØHL�àÔ%ð"(à ð"(ð " \Ð1Ð1Ø <Ð/Ð/ð 9=�Fð&ð &ð &ð &ð &ð &ð &ð &ð(ð (ð (ð (ð (ð (ð (ð&0ØŸ)š)™+œ+ñ QØ*.×*CÒ*CÑ*EÔ*EÐ$EÐ$EÐ$EÐ$EÐ$EÐ$Eð Rð R˜DØ ×.Ò.¨t¬w¸¼ÈDÐ.ÑQÔQÐQÐQØ'-§|¢|ØLÐL¨¬
×(9Ò(9Ñ(;Ô(;ÐLÑLÔLØ$(Ô$5Ø'1Ø*.Ô*;ð	 (4ñ (ô (ð (ð (ð (ð (ð (ð (ð ( !õ &-Ø +Ø *Ø )Ø &Ô 1Ý 'Ô 2Ø 'Ø .Ø -ñ	&ô 	&ð 
(ð 
( ð '(     ð
(ð(ð$ ŸšÑ)Ô)Ð)Ø:Ð:¸4Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@à&¨&Ò0Ð0Ý"&¥w¤~°tÔ7OÑ"PÔ"PÐPÐPÐPÐPÐPÐPÐPð3 Ÿ)š)™+œ+ñ Qð8 'Ð2Ø-˜oÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/øøð 'Ð2Ø-˜oÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ð 3øøøðaq0ð q0ð q0ñ q0ô q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0ð q0øøøð q0ð q0ð q0ð q0ðf /Ð.¨tÑ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4õ ØØØØÔ!ÝÔ"ØØØñ	ô 	ð 
ð 
�ð �����àŒ{˜nÒ,Ð,Ý*ðM¨fÐ5FÔ.Gð Mð Mð Mõ  )Ô>ðñ ô �õ *¨#Ñ.Ô.Ð.Ø” 
Ò*Ð*Ø”<Ð'Ý&Ð'MÑNÔNÐNÝ" 4¤<Ô#<Ð#JÀ
ÑKÔKÐKà×*Ò*¨4¬;Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7øÝð 	ð 	ð 	ØÐ&Ý”n [×%?Ò%?ÀÑ%BÔ%BÑCÔCÐCÐCÐCÐCÐCÐCÐCØøøøøð	øøøse   ÄSd ×C6`*Ú:B` Ý^ÝB` ß-`*à `à`*àd à*
`4à4d à7`4à8Cd ä
eä 0eåez4The v3 streaming protocol on Pregel is experimental.)r"  ©rÂ  rÄ  rÏ  Útransformersr†  r’   c               óx  — t          | j        |¦  «        }t          | j        ¦  «        }	t          |¦  «        }
t	          t
          t          t          t          g|	¢|
¢|d¬¦  «        }t           | j
        |t          |t          di¦  «        ft          |¦  «        dd|||dœ|¤Ž¦  «        }t          ||¦  «        S )a  Internal v3 sync streaming implementation. Public entry: stream_events(version='v3').

        Extra keyword arguments are forwarded to the underlying ``stream(...)``
        call. The dispatcher in ``stream_events`` rejects ``stream_mode`` and
        ``subgraphs`` since v3 owns them (``stream_mode`` is derived from the
        transformer mux; ``subgraphs`` is always True so nested namespaces
        flow through scoped muxes).

        !!! warning

            The v3 streaming protocol is experimental and may change.
        F©r(  r"  Úis_asyncTræ  ©r  r	  rÔ  rÂ  rÄ  rÏ  )Ú_resolve_parent_nsrC  r*  rI  r�   r–   r”   r“   r•   ÚiterrÙ  r3   rB   r  r’   )r¾   rZ  rC  rÂ  rÄ  rÏ  r†  rÙ   r  Úcompiled_factoriesÚextra_factoriesr  Ú
graph_iters                r¿   Ú_pregel_stream_v3zPregel._pregel_stream_v3°  sö   € õ0 ' t¤{°FÑ;Ô;ˆ	ÝDØÔ$ñ
ô 
Ðõ BÀ,ÑOÔOˆÝå!Ý#Ý$Ý#ð	ð
 $ðð !ðð Øð
ñ 
ô 
ˆõ ØˆDŒKØÝ" 6Õ,IÈ4Ð+PÑQÔQð
õ 2°#Ñ6Ô6ØØØ!1Ø /Øð
ð 
ð ð
ð 
ñ
ô 
ˆ
õ ˜j¨#Ñ.Ô.Ð.rÁ   r‘   c          
   ‹  ó†  K  — t          | j        |¦  «        }t          | j        ¦  «        }	t          |¦  «        }
t	          t
          t          t          t          g|	¢|
¢|d¬¦  «        } | j	        |t          |t          di¦  «        ft          |¦  «        dd|||dœ|¤Ž                     ¦   «         }t          ||¦  «        S )a  Internal v3 async streaming implementation. Public entry: astream_events(version='v3').

        Extra keyword arguments are forwarded to the underlying ``astream(...)``
        call. The dispatcher in ``astream_events`` rejects ``stream_mode`` and
        ``subgraphs`` since v3 owns them (``stream_mode`` is derived from the
        transformer mux; ``subgraphs`` is always True so nested namespaces
        flow through scoped muxes).

        !!! warning

            The v3 streaming protocol is experimental and may change.
        Trˆ  ræ  rŠ  )r‹  rC  r*  rI  r�   r–   r”   r“   r•   rW  r3   rB   r  Ú	__aiter__r‘   )r¾   rZ  rC  rÂ  rÄ  rÏ  r†  rÙ   r  r�  rŽ  r  Úgraph_aiters                r¿   Ú_apregel_stream_v3zPregel._apregel_stream_v3è  sû   è è € õ0 ' t¤{°FÑ;Ô;ˆ	ÝDØÔ$ñ
ô 
Ðõ BÀ,ÑOÔOˆÝå!Ý#Ý$Ý#ð	ð
 $ðð !ðð Øð
ñ 
ô 
ˆð #�d”lØÝ˜vÕ(EÀtÐ'LÑMÔMð

õ .¨cÑ2Ô2ØØØ-Ø+Øð

ð 

ð ð

ð 

÷ Š)‰+Œ+ð 	õ # ;°Ñ4Ô4Ð4rÁ   ræ  )rÔ  úIterator[StreamEvent]c               ó   — d S r¼   r  ©r¾   rZ  rC  rÔ  rÙ   s        r¿   Ústream_eventszPregel.stream_events  s	   € ð !$ rÁ   úLiteral['v3']c               ó   — d S r¼   r  ©	r¾   rZ  rC  rÔ  rÂ  rÄ  rÏ  r†  rÙ   s	            r¿   r˜  zPregel.stream_events(  s	   € ð ˜rÁ   )rÔ  rÂ  rÄ  rÏ  r†  úLiteral['v1', 'v2', 'v3']c               ó�   •— |dk    r#t          |¦  «          | j        ||f||||dœ|¤ŽS  t          ¦   «         j        ||fd|i|¤ŽS )uÊ
  Stream events from this graph.

        For `version="v1"` / `"v2"`, yields `StreamEvent` dicts (see
        `Runnable.stream_events`). For `version="v3"`, returns a
        `GraphRunStream` whose typed projections the caller drives by
        iterating â€” no background thread.

        !!! warning

            The `version="v3"` API is experimental and may change.

        Builds a `StreamMux` from the built-in transformers, this
        graph's compile-time `stream_transformers`, and any additional
        `transformers=` supplied at the call site. `run.output`,
        `run.interrupted`, and `run.interrupts` work regardless of
        which transformers are registered.

        Note:
            Nesting v1 `stream(stream_mode="messages")` inside a node
            of a `stream_events(version="v3")` run is not fully
            supported. The outer v3 messages handler reroutes
            `BaseChatModel.invoke` through the v2 event protocol, so
            the inner v1 handler does not see `on_llm_new_token`
            chunks. The inner stream still yields a finalized message
            via `on_llm_end`. Use `stream_events(version="v3")` for the
            inner graph as well, or call `chat_model.stream(...)`
            explicitly, to get token-level streaming.

        Args:
            input: Graph input.
            config: Optional runnable config.
            version: Streaming-event schema version. `"v3"` selects the
                content-block-centric streaming protocol.
            interrupt_before: Nodes to interrupt before, if any. Only
                used for `version="v3"`.
            interrupt_after: Nodes to interrupt after, if any. Only
                used for `version="v3"`.
            control: Optional run control used to request cooperative
                drain. Only used for `version="v3"`.
            transformers: Extra transformer classes or configured
                factories appended after compile-time
                `stream_transformers`. Factories are called as
                `factory(scope)` so they can propagate to subgraph
                scopes. Only used for `version="v3"`.
            **kwargs: For `version="v1"`/`"v2"`, forwarded to
                `Runnable.stream_events`. For `version="v3"`, forwarded
                to the underlying `stream(...)` call (e.g. `context`,
                `durability`, `output_keys`, `print_mode`, `debug`).
                `stream_mode` and `subgraphs` are not accepted under
                `version="v3"` and raise `TypeError` if supplied; v3
                owns them.

        Returns:
            For `version="v3"`, a `GraphRunStream` the caller iterates
            to drive the run. Otherwise an `Iterator[StreamEvent]`.
        Úv3r…  rÔ  )r  r�  r³  r˜  ©
r¾   rZ  rC  rÔ  rÂ  rÄ  rÏ  r†  rÙ   r„  s
            €r¿   r˜  zPregel.stream_events6  s„   ø€ ðH �dŠ?ˆ?Ý'¨Ñ/Ô/Ð/Ø)�4Ô)ØØðð "2Ø /ØØ)ðð ð ðð ð ð %�u‰wŒwÔ$ U¨FÐNÐN¸GÐNÀvÐNÐNÐNrÁ   úAsyncIterator[StreamEvent]c               ó   — d S r¼   r  r—  s        r¿   Úastream_eventszPregel.astream_events‡  s	   € ð &) SrÁ   úAwaitable[AsyncGraphRunStream]c               ó   — d S r¼   r  r›  s	            r¿   r¢  zPregel.astream_events‘  s	   € ð *-¨rÁ   ú+AsyncIterator[StreamEvent] | Awaitable[Any]c               ó�   •— |dk    r#t          |¦  «          | j        ||f||||dœ|¤ŽS  t          ¦   «         j        ||fd|i|¤ŽS )uô  Async variant of `stream_events`.

        For `version="v3"`, returns an `AsyncGraphRunStream` whose
        projections can be awaited concurrently; each subscribed cursor
        drives the pump when its buffer is empty. The same nesting
        limitation as the sync path applies â€” see `stream_events` for
        details.

        !!! warning

            The `version="v3"` API is experimental and may change.

        See `stream_events` for full argument and return documentation.
        rž  r…  rÔ  )r  r”  r³  r¢  rŸ  s
            €r¿   r¢  zPregel.astream_eventsŸ  sƒ   ø€ ð4 �dŠ?ˆ?Ý'¨Ñ/Ô/Ð/Ø*�4Ô*ØØðð "2Ø /ØØ)ðð ð ðð ð ð &�u‰wŒwÔ% e¨VÐOÐO¸WÐOÈÐOÐOÐOrÁ   ©rÎ  r  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  úLiteral['values']úGraphOutput[OutputT]c       	        ó   — d S r¼   r  ©r¾   rZ  rC  rÎ  r  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  rÔ  rÙ   s                r¿   rŽ  zPregel.invokeÆ  ó	   € ð   #˜srÁ   )rÎ  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  ú!list[StreamPart[StateT, OutputT]]c       	        ó   — d S r¼   r  r«  s                r¿   rŽ  zPregel.invokeØ  s	   € ð  -0¨CrÁ   ©	rÎ  r  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  rÔ  c       	        ó   — d S r¼   r  r«  s                r¿   rŽ  zPregel.invokeê  r¬  rÁ   c       	        óø  — |�|n| j         }d}g }g }|dk    rw | j        ||f||dk    rdn||||||	|
|dœ	|¤ŽD ]S}|dk    r6|d         }|                     dd¦  «        x}r|                     |¦  «         Œ>|                     |¦  «         ŒT�n | j        ||f||dk    rddgn||||||	|
d	œ|¤ŽD ]ï}|dk    rÒt          |¦  «        d
k    r+t          t          t          t          f         |¦  «        \  }}n>t          t          t          t          df         t          t          f         |¦  «        \  }}}|dk    rGt          |t          ¦  «        r2|                     t          ¦  «        x}�|                     |¦  «         ŒÑ|dk    r|}ŒÚ|                     |¦  «         Œð|dk    rS|dk    rt          |t          |¦  «        ¬¦  «        S |r+t          |t          ¦  «        ri |¥t          |i¥nt          |iS |S |S )añ  Run the graph with a single input and config.

        Args:
            input: The input data for the graph. It can be a dictionary or any other type.
            config: The configuration for the graph run.
            context: The static context to use for the run.
                !!! version-added "Added in version 0.6.0"
            stream_mode: The stream mode for the graph run.
            print_mode: Accepts the same values as `stream_mode`, but only prints the output to the console, for debugging purposes.

                Does not affect the output of the graph in any way.
            output_keys: The output keys to retrieve from the graph run.
            interrupt_before: The nodes to interrupt the graph run before.
            interrupt_after: The nodes to interrupt the graph run after.
            durability: The durability mode for the graph execution, defaults to `"async"`.

                Options are:

                - `"sync"`: Changes are persisted synchronously before the next step starts.
                - `"async"`: Changes are persisted asynchronously while the next step executes.
                - `"exit"`: Changes are persisted only when the graph exits.
            control: Optional run control used to request cooperative drain.
            version: The streaming format version. `"v1"` (default) returns the
                traditional format, `"v2"` returns `StreamPart` typed dicts when
                `stream_mode` is not `"values"`.
            **kwargs: Additional keyword arguments to pass to the graph run.

        Returns:
            The output of the graph run. If `stream_mode` is `"values"`, it returns the latest output.
            If `stream_mode` is not `"values"`, it returns a list of output chunks.
        Nræ  r.  r¯  Údatarì  r  rO  r§  rT  .©rä   rì  )r1  rÙ  r[  rÏ   rÆ   rÓ  r   r^  r¡   r   rÃ   rÍ   r  rG   rœ   ©r¾   rZ  rC  rÎ  r  rÀ  rÁ  rÂ  rÄ  r¾  rÏ  rÔ  rÙ   ÚlatestÚchunksrì  ÚchunkÚ
chunk_intsÚmodeÚpayloadr.  Úintss                         r¿   rŽ  zPregel.invokeü  s¬  € ð^ &1Ð%<�k�kÀ$ÔBVˆà'+ˆØ-/ˆØ&(ˆ
à�dŠ?ˆ?à$˜œØØðð  Ø(3°xÒ(?Ð(?˜H˜HÀ[Ø%Ø'Ø!1Ø /Ø%ØØðð ð ðð ð )ð )�ð  (Ò*Ð*Ø" 6œ]�FØ%*§Y¢Y¨|¸RÑ%@Ô%@Ð@�zð 6Ø"×)Ò)¨*Ñ5Ô5Ð5øà—M’M %Ñ(Ô(Ð(Ð(ñ')ð, %˜œØØðð  à-8¸HÒ-DÐ-D�Y Ð)Ð)È+à%Ø'Ø!1Ø /Ø%Øðð ð ðð ð )ð )�ð  (Ò*Ð*Ý˜5‘z”z Q’�Ý(,­Uµ:½s°?Ô-CÀUÑ(KÔ(K™˜˜g˜gå+/Ý!¥%­¨S¨¤/µ:½sÐ"BÔCÀUñ,ô ,Ñ(˜˜4 ð  	Ò)Ð)Ý& wµÑ5Ô5ð *à%,§[¢[µÑ%;Ô%;Ð;˜TÐHà"×)Ò)¨$Ñ/Ô/Ð/Ð/Ø Ò)Ð)Ø!(˜øà—M’M %Ñ(Ô(Ð(Ð(à˜(Ò"Ð"Ø˜$ŠˆÝ"¨½EÀ*Ñ<MÔ<MÐNÑNÔNÐNØð õ " &­$Ñ/Ô/ð1Ð5�vÐ5�y¨*Ð5Ð5Ð5å# ZÐ0ðð
 ˆMàˆMrÁ   c       	      ‹  ó
   K  — d S r¼   r  r«  s                r¿   r´  zPregel.ainvokew  ó   è è € ð   #˜srÁ   c       	      ‹  ó
   K  — d S r¼   r  r«  s                r¿   r´  zPregel.ainvoke‰  s   è è € ð  -0¨CrÁ   c       	      ‹  ó
   K  — d S r¼   r  r«  s                r¿   r´  zPregel.ainvoke›  r½  rÁ   c       	      ‹  ó  K  — |�|n| j         }d}g }g }|dk    r} | j        ||f||dk    rdn||||||	|
|dœ	|¤Ž2 3 d{V —†}|dk    r6|d         }|                     dd¦  «        x}r|                     |¦  «         ŒC|                     |¦  «         ŒY6 �n | j        ||f||dk    rddgn||||||	|
d	œ|¤Ž2 3 d{V —†}|dk    rÒt          |¦  «        d
k    r+t          t          t          t          f         |¦  «        \  }}n>t          t          t          t          df         t          t          f         |¦  «        \  }}}|dk    rGt          |t          ¦  «        r2|                     t          ¦  «        x}�|                     |¦  «         ŒÖ|dk    r|}Œß|                     |¦  «         Œõ6 |dk    rS|dk    rt          |t          |¦  «        ¬¦  «        S |r+t          |t          ¦  «        ri |¥t          |i¥nt          |iS |S |S )a   Asynchronously run the graph with a single input and config.

        Args:
            input: The input data for the graph. It can be a dictionary or any other type.
            config: The configuration for the graph run.
            context: The static context to use for the run.
                !!! version-added "Added in version 0.6.0"
            stream_mode: The stream mode for the graph run.
            print_mode: Accepts the same values as `stream_mode`, but only prints the output to the console, for debugging purposes.

                Does not affect the output of the graph in any way.
            output_keys: The output keys to retrieve from the graph run.
            interrupt_before: The nodes to interrupt the graph run before.
            interrupt_after: The nodes to interrupt the graph run after.
            durability: The durability mode for the graph execution, defaults to `"async"`.

                Options are:

                - `"sync"`: Changes are persisted synchronously before the next step starts.
                - `"async"`: Changes are persisted asynchronously while the next step executes.
                - `"exit"`: Changes are persisted only when the graph exits.
            control: Optional run control used to request cooperative drain.
            version: The streaming format version. `"v1"` (default) returns the
                traditional format, `"v2"` returns `StreamPart` typed dicts when
                `stream_mode` is not `"values"`.
            **kwargs: Additional keyword arguments to pass to the graph run.

        Returns:
            The output of the graph run. If `stream_mode` is `"values"`, it returns the latest output.
            If `stream_mode` is not `"values"`, it returns a list of output chunks.
        Nræ  r.  r¯  r²  rì  r  rO  r§  rT  .r³  )r1  rW  r[  rÏ   rÆ   rÓ  r   r^  r¡   r   rÃ   rÍ   r  rG   rœ   r´  s                         r¿   r´  zPregel.ainvoke­  sï  è è € ð^ &1Ð%<�k�kÀ$ÔBVˆà'+ˆØ-/ˆØ&(ˆ
à�dŠ?ˆ?à+˜tœ|ØØð ð  Ø(3°xÒ(?Ð(?˜H˜HÀ[Ø%Ø'Ø!1Ø /Ø%ØØð ð  ð ð ð  ð )ð )ð )ð )ð )ð )ð )�eð  (Ò*Ð*Ø" 6œ]�FØ%*§Y¢Y¨|¸RÑ%@Ô%@Ð@�zð 6Ø"×)Ò)¨*Ñ5Ô5Ð5øà—M’M %Ñ(Ô(Ð(Ð(ð' ñ  ð,  ,˜tœ|ØØð ð  à-8¸HÒ-DÐ-D�Y Ð)Ð)È+à%Ø'Ø!1Ø /Ø%Øð ð  ð ð ð  ð )ð )ð )ð )ð )ð )ð )�eð  (Ò*Ð*Ý˜5‘z”z Q’�Ý(,­Uµ:½s°?Ô-CÀUÑ(KÔ(K™˜˜g˜gå+/Ý!¥%­¨S¨¤/µ:½sÐ"BÔCÀUñ,ô ,Ñ(˜˜4 ð  	Ò)Ð)Ý& wµÑ5Ô5ð *à%,§[¢[µÑ%;Ô%;Ð;˜TÐHà"×)Ò)¨$Ñ/Ô/Ð/Ð/Ø Ò)Ð)Ø!(˜øà—M’M %Ñ(Ô(Ð(Ð(ð? ðB ˜(Ò"Ð"Ø˜$ŠˆÝ"¨½EÀ*Ñ<MÔ<MÐNÑNÔNÐNØð õ " &­$Ñ/Ô/ð1Ð5�vÐ5�y¨*Ð5Ð5Ð5å# ZÐ0ðð
 ˆMàˆMs   »BÂ9F.c                ó*  — | j         st          d¦  «        ‚|p| j                             ¦   «         }g }|D ]B}|| j        v r7|                     t
          t          | j        |         ¦  «        pd|f¦  «         ŒC| j                              |¦  «         dS )z$Clear the cache for the given nodes.ú3No cache is set for this graph. Cannot clear cache.Ú__dynamic__N)r?  rÅ   r-  rµ  rÆ   r5   rj   Úclear©r¾   r-  Ú
namespacesrÓ   s       r¿   Úclear_cachezPregel.clear_cache(  s¬   € àŒzð 	TÝÐRÑSÔSÐSØÐ*˜œŸšÑ*Ô*ˆà,.ˆ
Øð 	ð 	ˆDØ�t”zÐ!Ð!Ø×!Ò!å'Ý# D¤J¨tÔ$4Ñ5Ô5ÐF¸Øðñô ð øð 	Œ
×Ò˜Ñ$Ô$Ð$Ð$Ð$rÁ   c              ƒ  ó:  K  — | j         st          d¦  «        ‚|p| j                             ¦   «         }g }|D ]B}|| j        v r7|                     t
          t          | j        |         ¦  «        pd|f¦  «         ŒC| j                              |¦  «        ƒ d{V —† dS )z3Asynchronously clear the cache for the given nodes.rÂ  rÃ  N)r?  rÅ   r-  rµ  rÆ   r5   rj   ÚaclearrÅ  s       r¿   Úaclear_cachezPregel.aclear_cache;  sÂ   è è € àŒzð 	TÝÐRÑSÔSÐSØÐ*˜œŸšÑ*Ô*ˆà,.ˆ
Øð 	ð 	ˆDØ�t”zÐ!Ð!Ø×!Ò!å'Ý# D¤J¨tÔ$4Ñ5Ô5ÐF¸Øðñô ð øð Œj×Ò 
Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+rÁ   )2r-  rJ  rÊ   rK  rH  rË   r  r¡   r/  rË   r1  r0  r3  r2  r5  r4  r6  r4  r7  r0  r9  r8  r:  rL  r;  r™   r=  r<  r?  r>  rþ   rM  rÿ   r¸   rA  r@  rC  rB  rF  rN  rG  rO  rÕ   rÃ   rI  r  rP  rQ  r¹   rº   )r;  ra  r¹   ra  r¼   )rC  rB  rg  rh  r¹   r!   )rÙ   r   r¹   r·   )rî   r  r¹   r*   )rC  rB  rÙ   r   r¹   r*   )r¹   r*   )r‘  r’  r¹   r“  )r‘  r’  r¹   r·   )r¹   r  )r¹   r   )rC  rB  r¹   r“  )rC  rB  r¹   r·   )r¹   rÂ  )r¹   r0  )rÉ  rË  rÊ  rË   r¹   rÌ  )rÉ  rË  rÊ  rË   r¹   rÕ  )rÚ  r%   r¹   rº   )NF)
rC  r   rã  rä  rÊ  ra  rå  rË   r¹   rŸ   )rC  r   r	  rË   r¹   rŸ   )
rC  r   r4  r  r5  rB  r6  r7  r¹   r8  )
rC  r   r4  r  r5  rB  r6  r7  r¹   r=  )rC  r   rC  rD  r¹   r   )NN)
rC  r   r.  r·  rc  rË  rd  rË  r¹   r   )
rC  r   r.  r»  rc  rË  rd  rË  r¹   r   )rC  r   r  r¿  rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  r¹   rÆ  )rZ  rÐ  rC  rB  rÎ  rÑ  r  rÒ  rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  r	  rË   r:  rL  rÔ  rÕ  rÙ   rQ  r¹   rÖ  )rZ  rÐ  rC  rB  rÎ  rÑ  r  rÒ  rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  r	  rË   r:  rL  rÔ  rÚ  rÙ   rQ  r¹   rÛ  )rZ  rÐ  rC  rB  rÎ  rÑ  r  rÒ  rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  r	  rË   r:  rL  rÔ  rÞ  rÙ   rQ  r¹   rÛ  )rZ  rÐ  rC  rB  rÎ  rÑ  r  rÒ  rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  r	  rË   r:  rL  rÔ  rÕ  rÙ   rQ  r¹   rU  )rZ  rÐ  rC  rB  rÎ  rÑ  r  rÒ  rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  r	  rË   r:  rL  rÔ  rÚ  rÙ   rQ  r¹   rX  )rZ  rÐ  rC  rB  rÎ  rÑ  r  rÒ  rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  r	  rË   r:  rL  rÔ  rÞ  rÙ   rQ  r¹   rX  )rZ  rÐ  rC  rB  rÂ  rÃ  rÄ  rÃ  rÏ  rÓ  r†  r  rÙ   r   r¹   r’   )rZ  rÐ  rC  rB  rÂ  rÃ  rÄ  rÃ  rÏ  rÓ  r†  r  rÙ   r   r¹   r‘   )
rZ  rÐ  rC  rB  rÔ  rÞ  rÙ   r   r¹   r•  )rZ  rÐ  rC  rB  rÔ  r™  rÂ  rÃ  rÄ  rÃ  rÏ  rÓ  r†  r  rÙ   r   r¹   r’   )rZ  rÐ  rC  rB  rÔ  rœ  rÂ  rÃ  rÄ  rÃ  rÏ  rÓ  r†  r  rÙ   r   r¹   r   )
rZ  rÐ  rC  rB  rÔ  rÞ  rÙ   r   r¹   r   )rZ  rÐ  rC  rB  rÔ  r™  rÂ  rÃ  rÄ  rÃ  rÏ  rÓ  r†  r  rÙ   r   r¹   r£  )rZ  rÐ  rC  rB  rÔ  rœ  rÂ  rÃ  rÄ  rÃ  rÏ  rÓ  r†  r  rÙ   r   r¹   r¥  )rZ  rÐ  rC  rB  rÎ  rÑ  r  r¨  rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  rÔ  rÕ  rÙ   r   r¹   r©  )rZ  rÐ  rC  rB  rÎ  rÑ  r  r¡   rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  rÔ  rÕ  rÙ   r   r¹   r­  )rZ  rÐ  rC  rB  rÎ  rÑ  r  r¡   rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  rÔ  rÚ  rÙ   r   r¹   r»  )rZ  rÐ  rC  rB  rÎ  rÑ  r  r¡   rÀ  r¿  rÁ  r2  rÂ  rÃ  rÄ  rÃ  r¾  rÅ  rÏ  rÓ  rÔ  rÞ  rÙ   r   r¹   r»  )r-  r’  r¹   rº   )Cr  r  r  Ú__doc__r  r  r/  r3  r9  r;  r=  r?  rþ   rÿ   rA  rC  rÕ   rÀ   re  rm  rt  r~  r†  rˆ  r`  r,   r   r¨  r¬  Úpropertyr¯  r´  r¹  r¼  r¿  rÁ  rÅ  rÄ  ro  rv  rØ  rÙ  râ  r  r#  r  r"  r;  r@  r§  r¶  rº  r½  rÍ  r   rÙ  rW  r   r�  r”  r˜  r¢  rŽ  r´  rÇ  rÊ  Ú__classcell__)r„  s   @r¿   r¬   r¬   Â  sU  ø€ € € € € € ðyð yðv !Ð Ð Ñ à7Ð7Ð7Ñ7à&€KÐ&Ð&Ð&Ñ&Ø6à€LÐÐÐÑð0ð )Ð(Ð(Ñ(à26€OÐ6Ð6Ð6Ñ6ØOà.Ð.Ð.Ñ.à/Ð/Ð/Ñ/à'Ð'Ð'Ñ'à!%€LÐ%Ð%Ð%Ñ%ØBà€K€K�KØ>à!%€LÐ%Ð%Ð%Ñ%Ø;à"€EÐ"Ð"Ð"Ñ"Ø/à"€EÐ"Ð"Ð"Ñ"Ø0à*,€LÐ,Ð,Ð,Ñ,ØOà'+€LÐ+Ð+Ð+Ñ+ØSà,0€NÐ0Ð0Ð0Ñ0ØZà$(€FÐ(Ð(Ð(Ñ(à€DÐÐÐÑà1Ð1Ð1Ñ1Ø-Ð-Ð-Ñ-ð #Ø"*Ø"à6:Ø57Ø68à%)Ø!Ø%)Ø"&Ø"&Ø<>Ø+/Ø04Ø(,Ø?CØ;?ØØQUð3Nð Nð Nð Nð Nð Nð`Xð Xð Xð Xð /3ð
ØJOð
ð 
ð 
ð 
ð 
ð 
ð: /3ð(
ØJOð(
ð (
ð (
ð (
ð (
ð (
ðT
ð 
ð 
ð 
ð'ð 'ð 'ð 'ð 'ð

ð 
ð 
ð 
ð 
ðð ð ð ð" €ZØfØðñ ô ð @Dð Oð Oð Oð Oð Oñ	ô ðOð, €ZØVØðñ ô ð
 26ð*ð *ð *ð *ð *ñ	ô ð*ðð ð ð ð ð*ð *ð *ñ „Xð*ðð ð ð ð ð ð ð /3ð*ð *ð *ð *ð *ð ð)ð )ð )ñ „Xð)ð /3ðð ð ð ð ð ð ð" /3ð*ð *ð *ð *ð *ð ð
ð 
ð 
ñ „Xð
ð ð
ð 
ð 
ñ „Xð
ð *.¸uð%ð %ð %ð %ð %ð %ðP *.¸uðð ð ð ð ð ð$ 37€NÐ6Ð6Ð6Ñ6Ø15€MÐ5Ð5Ð5Ñ5ðð ð ð ð /3Ø%*ðy
ð y
ð y
ð y
ð y
ð~ /3Ø%*ðz
ð z
ð z
ð z
ð z
ðz <Að*
ð *
ð *
ð *
ð *
ð *
ðZ <Að*
ð *
ð *
ð *
ð *
ð *
ð` )-Ø(,Ø ð3ð 3ð 3ð 3ð 3ð 3ðr )-Ø(,Ø ð7ð 7ð 7ð 7ð 7ð 7ðrPð Pð Pð PðdIð Ið Ið Ið^ #Ø"ðYð Yð Yð Yð Yð" #Ø"ð
ð 
ð 
ð 
ð 
ð0 )-ðF
ð F
ð F
ð F
ð F
ð F
ðP ð )-ð4ð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!ð4ð 4ð 4ð 4ð 4ñ „Xð4ð& ð )-ð-ð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!Ø!$ð-ð -ð -ð -ð -ñ „Xð-ð, )-ðnð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!Ø'+ðnð nð nð nð nð nð` ð )-ð9ð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!ð9ð 9ð 9ð 9ð 9ñ „Xð9ð& ð )-ð2ð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!Ø!$ð2ð 2ð 2ð 2ð 2ñ „Xð2ð, )-ðwð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!Ø'+ðwð wð wð wð wð wðr 
€TÐHÐIÑIÔIð )-ð5/ð
 8<Ø6:Ø%)ØJNð5/ð 5/ð 5/ð 5/ð 5/ñ JÔIð5/ðn 
€TÐHÐIÑIÔIð )-ð35ð
 8<Ø6:Ø%)ØJNð35ð 35ð 35ð 35ð 35ñ JÔIð35ðj ð )-ð$ð
 (,ð$ð $ð $ð $ð $ñ „Xð$ð ð )-ðð 8<Ø6:Ø%)ØJNðð ñ ð ð ñ „Xðð  )-ðOOð
 .2Ø7;Ø6:Ø%)ØJNðOOð OOñ OOð OOð OOð OOð OOð OOðb ð )-ð)ð
 (,ð)ð )ñ )ð )ð )ñ „Xð)ð ð )-ð-ð 8<Ø6:Ø%)ØJNð-ð -ñ -ð -ð -ñ „Xð-ð  )-ð%Pð
 .2Ø7;Ø6:Ø%)ØJNð%Pð %Pñ %Pð %Pð %Pð %Pð %Pð %PðN ð )-ð#ð
 $(Ø),Ø8:Ø26Ø7;Ø6:Ø(,Ø%)ð#ð #ñ #ð #ð #ñ „Xð#ð" ð )-ð0ð
 $(à8:Ø26Ø7;Ø6:Ø(,Ø%)ð0ð 0ñ 0ð 0ð 0ñ „Xð0ð" ð )-ð#ð
 $(Ø"*Ø8:Ø26Ø7;Ø6:Ø(,Ø%)Ø!$ð#ð #ñ #ð #ð #ñ „Xð#ð( )-ðyð
 $(Ø"*Ø8:Ø26Ø7;Ø6:Ø(,Ø%)Ø'+ðyð yñ yð yð yð yðv ð )-ð#ð
 $(Ø),Ø8:Ø26Ø7;Ø6:Ø(,Ø%)ð#ð #ñ #ð #ð #ñ „Xð#ð" ð )-ð0ð
 $(à8:Ø26Ø7;Ø6:Ø(,Ø%)ð0ð 0ñ 0ð 0ð 0ñ „Xð0ð" ð )-ð#ð
 $(Ø"*Ø8:Ø26Ø7;Ø6:Ø(,Ø%)Ø!$ð#ð #ñ #ð #ð #ñ „Xð#ð( )-ðyð
 $(Ø"*Ø8:Ø26Ø7;Ø6:Ø(,Ø%)Ø'+ðyð yñ yð yð yð yðv%ñ %ð %ð %ð %ð&,ñ ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,rÁ   r¬   r-  r,  rE  c                óÆ   — t          t          ¦  «        }|                      ¦   «         D ]*\  }}|j        D ]}||                              |¦  «         ŒŒ+t          |¦  «        S )z0Index from a trigger to nodes that depend on it.)r   rÎ   ré   rû   rÆ   r  )r-  rF  rÕ   rÓ   Útriggers        r¿   r�  r�  O  sl   € å4?ÅÑ4EÔ4EÐØ—k’k‘m”mð 3ð 3‰
ˆˆdØ”}ð 	3ð 	3ˆGØ˜WÔ%×,Ò,¨TÑ2Ô2Ð2Ð2ð	3åÐ Ñ!Ô!Ð!rÁ   rÝ  r  r¿  rÀ  Ústream_subgraphsrË   Úgetterú.Callable[[], tuple[tuple[str, ...], str, Any]]Ú	empty_excútype[Exception]rÔ  rÞ  Úoutput_mapperr×  Ústate_mapperr	   c           
   #  ó  K  — 	 	  |¦   «         \  }}	}
n# |$ r Y d S w xY w|	|v r�|rY|rWt          d                     t          d|	› d�¦  «        t          d|› d�d¬¦  «        t	          |
¦  «        f¦  «        ¦  «         nBt          d                     t          d|	› d�¦  «        t	          |
¦  «        f¦  «        ¦  «         |	| v rÅ|dk    rw|	d	k    rId
}t          |
t          ¦  «        r(|
                     t          d
¦  «        }|r ||
¦  «        }
|	||
|dœV — np|	dv r|rt          |
|¦  «         |	||
dœV — nQ|	||
dœV — nH|rt          | t          ¦  «        r||	|
fV — n)t          | t          ¦  «        r|	|
fV — n|r||
fV — n|
V — �Œˆ)NTú ú[ú]z[graph=Úyellow)Úcolorræ  r.  r  )r'  r0  r²  rì  )Úcheckpointsr:  )r'  r0  r²  )Úprintr  r„   r…   r|  rÍ   r  rà  rG   Ú_coerce_checkpoint_valuesrÎ   )r  rÀ  rÐ  rÑ  rÓ  rÔ  rÕ  rÖ  r0  r¹  rº  r»  s               r¿   r:  r:  X  sZ  è è € ð1ð	Ø & ¡¤ÑˆB��g�gøØð 	ð 	ð 	ØˆEˆEð	øøøà�:ÐÐØð  Bð ÝØ—H’Hå+¨K°¨K¨K¨KÑ8Ô8Ý,¨_°r¨_¨_¨_ÀHÐMÑMÔMÝ  ™MœMðñô ñô ð ð õ Ø—H’Hå+¨K°¨K¨K¨KÑ8Ô8Ý  ™MœMðñô ñô ð ð �;ÐÐØ˜$ŠˆØ˜8Ò#Ð#à24�DÝ! '­4Ñ0Ô0ð =Ø&Ÿ{š{­9°bÑ9Ô9˜Ø(ð =Ø&3 m°GÑ&<Ô&<˜GØ#'¨r¸7ÐRVÐWÐWÐWÐWÐWÐWØÐ5Ð5Ð5à#ð IÝ1°'¸<ÑHÔHÐHØ#'¨r¸7ÐCÐCÐCÐCÐCÐCà#'¨r¸7ÐCÐCÐCÐCÐCÐCØ!ð ¥j°½dÑ&CÔ&Cð Ø˜4 Ð)Ð)Ð)Ð)Ð)Ý˜K­Ñ.Ô.ð Ø˜W�oÐ%Ð%Ð%Ð%Ø!ð Ø˜7�mÐ#Ð#Ð#Ð#à���ñc1s   … ”œrº  râ   úCallable[[Any], Any]c                óp  — d}t          | t          ¦  «        r¯|                      d¦  «        dk    r–t          |                      d¦  «        t          ¦  «        rnt          | d                              d¦  «        t          ¦  «        r@|| d                              dd¦  «        vr" || d         d         ¦  «        | d         d<   dS t          | t          ¦  «        rVt          |                      d¦  «        t          ¦  «        r0||                      dd¦  «        vr || d         ¦  «        | d<   dS dS dS dS )	zÖCoerce `values` dicts inside checkpoint or debug payloads in-place.

    Skips the initial checkpoint (where next contains ``__start__``) because
    not all channels are populated yet and coercion would fail.
    Ú	__start__r'  rÚ  rº  r.  rè  r  N)rÍ   r  r[  )rº  râ   Ú_STARTs      r¿   rß  rß  –  sJ  € ð €Fõ 	�7�DÑ!Ô!ð6à�KŠK˜ÑÔ <Ò/Ð/Ý�w—{’{ 9Ñ-Ô-­tÑ4Ô4ð 0å�w˜yÔ)×-Ò-¨hÑ7Ô7½Ñ>Ô>ð 0ð ˜' )Ô,×0Ò0°¸Ñ<Ô<Ð<Ð<à'- v¨g°iÔ.@ÀÔ.JÑ'KÔ'Kˆ�	Ô˜8Ñ$Ð$Ð$õ 	�7�DÑ!Ô!ð6å�w—{’{ 8Ñ,Ô,­dÑ3Ô3ð6ð ˜'Ÿ+š+ f¨bÑ1Ô1Ð1Ð1à"˜F 7¨8Ô#4Ñ5Ô5ˆ�ÑÐÐð6ð 6ð 6ð 6ð 2Ð1rÁ   Úgraph_configrB  Úcall_configc                óÞ   — t          | |¦  «        }|                     t          i ¦  «                             t          ¦  «        }|sdS t	          |                     t          ¦  «        ¦  «        S )a–  Return the checkpoint namespace the caller is running under.

    `stream_events(version="v3")` uses this to scope its native projections
    (`ValuesTransformer`, `MessagesTransformer`) to events emitted at
    the run's own level. A root call resolves to `()`; a call made
    from inside a node carries the outer graph's task namespace so the
    projection still matches its own root-level events.
    r  )r/   r[  r6   r9   r^  rù  rI   )rä  rå  Úmergedr0  s       r¿   r‹  r‹  ¯  s\   € õ ˜<¨Ñ5Ô5€FØ	�Š•D˜"Ñ	Ô	×	!Ò	!Õ":Ñ	;Ô	;€BØð ØˆrÝ�—’�&Ñ!Ô!Ñ"Ô"Ð"rÁ   rä   úRuntime[Any]c                ón   — t          | t          ¦  «        r| S t          t          | dd¦  «        ¬¦  «        S )a§  Normalize the value stored under `CONFIG_KEY_RUNTIME` into a `Runtime`.

    During a graph run this is always a `Runtime` the framework created and
    published for child tasks to inherit. Layers outside the run (for example a
    server's graph-factory path) may instead seed an object that only carries
    `context`/`store`. Adopt its `context` so context set at the graph level
    plumbs through (`merge` lets the run's own `context` take precedence when
    one is provided). `store` is resolved separately (passed to the graph
    directly), so it is not read off here. `merge` then combines this with the
    run's own runtime, including the framework's `control`.
    rÎ  N)rÎ  )rÍ   r�   r  rã   s    r¿   r,  r,  Á  s8   € õ �%�Ñ!Ô!ð ØˆÝ�7 5¨)°TÑ:Ô:Ð;Ñ;Ô;Ð;rÁ   rC  r   rP  úServerInfo | Nonec                ó¬  — |                       t          ¦  «        pi }|                      d¦  «        }|                      d¦  «        }|                      d¦  «        }d}|�:t          |t          ¦  «        st	          |d¦  «        rt          t          |¦  «        }|€|€|�4t          |rt          |¦  «        nd|rt          |¦  «        nd|¬¦  «        S dS )z½Build ServerInfo from config configurable.

    The server puts assistant_id/graph_id in config configurable and the
    authenticated user dict in configurable["langgraph_auth_user"].
    Úassistant_idÚgraph_idÚlanggraph_auth_userNÚidentityrô  )rì  rí  Úuser)r[  r6   rÍ   r‹   ru  r   rŽ   rÃ   )rC  rP  r•  rì  rí  Úauth_user_datarð  s          r¿   r-  r-  Ò  së   € ð —:’:�dÑ#Ô#Ð) r€LØ×#Ò# NÑ3Ô3€LØ×Ò 
Ñ+Ô+€Hð "×%Ò%Ð&;Ñ<Ô<€NØ €DØÐ!Ý�n¥hÑ/Ô/ð 	2µ7¸>È:Ñ3VÔ3Vð 	2Ý� .Ñ1Ô1ˆDàÐ 8Ð#7¸4Ð;KÝØ.:ÐB�˜\Ñ*Ô*Ð*ÀØ&.Ð6•S˜‘]”]�]°BØð
ñ 
ô 
ð 	
ð
 ˆ4rÁ   rA  r@  rÎ  rÑ  c                óÂ   — |€dS | €|S t          | t          ¦  «        pt          | ¦  «        }t          |t          ¦  «        r
|r | di |¤ŽS t          t          |¦  «        S )a—  Coerce context input to the appropriate schema type.

    If context is a dict and context_schema is a dataclass or pydantic model, we coerce.
    Else, we return the context as-is.

    Args:
        context_schema: The schema type to coerce to (BaseModel, dataclass, or TypedDict)
        context: The context value to coerce

    Returns:
        The coerced context value or None if context is None
    Nr  )rª  r(   r   rÍ   r  r   r¥   )rA  rÎ  Úschema_is_classs      r¿   r.  r.  ñ  s   € ð €ØˆtàÐØˆå  µÑ;Ô;ð ½|Øñ@ô @€Oõ �'�4Ñ Ô ð ) _ð )Øˆ~Ð(Ð( Ð(Ð(Ð(å•˜'Ñ"Ô"Ð"rÁ   )rÙ   r·   r¹   rº   )r  r   r¹   r  )r  r  r¹   r  )r-  r,  r¹   rE  )rÝ  NN)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ä  rB  rå  rB  r¹   r
  )rä   r   r¹   rè  )rC  r   rP  rè  r¹   rê  )rA  r@  rÎ  r   r¹   rÑ  )ýÚ
__future__r   rx  Ú
concurrentÚconcurrent.futuresrr  r;  r\  r0  Úcollectionsr   r   Úcollections.abcr   r   r   r	   r
   r   Údataclassesr   r   Údatetimer   Ú	functoolsr   Úinspectr   Útypingr   r   r   r   r   r   Úuuidr   r   Úlangchain_core._apir   Úlangchain_core.globalsr   Úlangchain_core.runnablesr   Úlangchain_core.runnables.baser   r   Úlangchain_core.runnables.configr   r   r    Úlangchain_core.runnables.graphr!   Úlangchain_core.runnables.schemar"   Úlanggraph.cache.baser#   Úlanggraph.checkpoint.baser$   r%   r&   Úlanggraph.store.baser'   Úpydanticr(   r)   Útyping_extensionsr*   r+   r,   r-   Úlanggraph._internalr.   Úlanggraph._internal._configr/   r0   r1   r2   r3   r4   Úlanggraph._internal._constantsr5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   Úlanggraph._internal._pydanticrM   Úlanggraph._internal._queuerN   rO   Úlanggraph._internal._runnablerP   rQ   rR   rS   Úlanggraph._internal._timeoutrT   Úlanggraph._internal._typingrU   rV   Úlanggraph.callbacksrW   rX   rY   rZ   Úlanggraph.channels.baser[   Úlanggraph.channels.topicr\   Úlanggraph.configr]   Úlanggraph.constantsr^   Úlanggraph.errorsr_   r`   ra   rb   rc   Úlanggraph.managed.baserd   Úlanggraph.pregel._algore   rf   rg   rh   ri   Úlanggraph.pregel._callrj   Úlanggraph.pregel._checkpointrk   rl   rm   rn   ro   rp   rq   Úlanggraph.pregel._drawrr   Úlanggraph.pregel._iors   rt   Úlanggraph.pregel._loopru   rv   Úlanggraph.pregel._messagesrw   rx   Úlanggraph.pregel._readry   rz   Úlanggraph.pregel._retryr{   Úlanggraph.pregel._runnerr|   Úlanggraph.pregel._toolsr}   Úlanggraph.pregel._utilsr~   r   Úlanggraph.pregel._validater€   r�   Úlanggraph.pregel._writer‚   rƒ   Úlanggraph.pregel.debugr„   r…   r†   Úlanggraph.pregel.protocolr‡   rˆ   r‰   Úlanggraph.runtimerŠ   r‹   rŒ   r�   rŽ   Úlanggraph.stream._muxr�   Úlanggraph.stream._typesr�   Úlanggraph.stream.run_streamr‘   r’   Úlanggraph.stream.transformersr“   r”   r•   r–   Úlanggraph.typesr—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   Úlanggraph.typingr¥   r¦   r§   r¨   Úlanggraph.warningsr©   Ú!langchain_core.tracers._streamingrª   ÚImportErrorÚ__all__rÚ   r«   r  r  r  r  r*  r¬   r�  r:  rß  r‹  r,  r-  r.  r  rÁ   r¿   ú<module>r5     s@  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ð Ð à $Ð $Ð $Ð $Ð $Ð $Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ð ð ð
 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð
 +Ð *Ð *Ð *Ð *Ð *Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dà &Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð4 7Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ø *Ð *Ð *Ð *Ð *Ð *Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð =Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø /Ð /Ð /Ð /Ð /Ð /Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ Qðð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ Kðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  ?Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø :Ð :Ð :Ð :Ð :Ð :ð%ØKÐKÐKÐKÐKÐKÐKøØð %ð %ð %Ø $ÐÐÐð%øøøð $€à˜�w �Ô'¨#Ñ-€ðj
ð j
ð j
ð j
ð j
ñ j
ô j
ð j
ðd )EÐ Ð DÐ DÐ DÑ Dð
ð 
ð 
ð 
ðð ð ð ð&ð ð ð ðBJ:,ð J:,ð J:,ð J:,ð J:,Ø�6˜8 V¨WÐ4Ô5ØˆF�H˜f gÐ-Ô.ñJ:,ô J:,ð J:,ðZt"ð "ð "ð "ð $(Ø15Ø04ð;ð ;ð ;ð ;ð ;ð|6ð 6ð 6ð 6ð2#ð #ð #ð #ð$<ð <ð <ð <ð"ð ð ð ð>#ð #ð #ð #ð #ð #s   ÉI$ É$I.É-I.