§
    è˜ºhË  ã                  ó   — d Z ddlmZ ddlZddlZddlZddl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mZmZmZmZ ddlZddlmZ ddlmZmZmZ dd	lmZ dd
lm Z  ddl!m"Z" 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- ddl.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZCmDZDmEZE ddlFmGZG ddlHmIZI ddlJmKZK  ejL        eM¦  «        ZN G d„ de,¦  «        ZO G d„ d e,¦  «        ZP G d!„ d"e$eeef                  ¦  «        ZQ G d#„ d$e$eee         ef                  ¦  «        ZR G d%„ d&eO¦  «        ZS G d'„ d(eP¦  «        ZT ed)d*d+¬,¦  «         G d-„ d.eO¦  «        ¦   «         ZU ed)d*d+¬,¦  «         G d/„ d0eO¦  «        ¦   «         ZV G d1„ d2e5¦  «        ZWeeeeef                  ZX G d3„ d4eG¦  «        ZYdS )5zEChain that takes in an input and produces an action and action input.é    )ÚannotationsN)Úabstractmethod)ÚPath)
ÚAnyÚAsyncIteratorÚCallableÚDictÚIteratorÚListÚOptionalÚSequenceÚTupleÚUnion)Ú
deprecated)ÚAgentActionÚAgentFinishÚ	AgentStep)ÚOutputParserException)ÚBaseLanguageModel)ÚBaseMessage)ÚBaseOutputParser)ÚBasePromptTemplate)ÚFewShotPromptTemplate)ÚPromptTemplate)Ú	BaseModelÚroot_validator)ÚRunnableÚRunnableConfigÚensure_config)ÚAddableDict)ÚBaseTool)Úget_color_mapping)ÚAgentExecutorIterator)Ú	AgentType)ÚInvalidTool)ÚBaseCallbackManager)ÚAsyncCallbackManagerForChainRunÚAsyncCallbackManagerForToolRunÚCallbackManagerForChainRunÚCallbackManagerForToolRunÚ	Callbacks)ÚChain)ÚLLMChain)Úasyncio_timeoutc                  óð   ‡ — e Zd ZdZed%d„¦   «         Zd&d„Ze	 d'd(d„¦   «         Ze	 d'd(d„¦   «         Z	eed%d„¦   «         ¦   «         Z
d)d„Ze	 d'd*d„¦   «         Zed+d„¦   «         Zd,ˆ fd„Zd-d#„Zd.d$„Zˆ xZS )/ÚBaseSingleActionAgentzBase Single Action Agent class.Úreturnú	List[str]c                ó   — dgS ©úReturn values of the agent.Úoutput© ©Úselfs    ú^/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain/agents/agent.pyÚreturn_valuesz#BaseSingleActionAgent.return_values<   ó   € ð ˆzÐó    úOptional[List[str]]c                ó   — d S ©Nr7   r8   s    r:   Úget_allowed_toolsz'BaseSingleActionAgent.get_allowed_toolsA   ó   € Øˆtr=   NÚintermediate_stepsúList[Tuple[AgentAction, str]]Ú	callbacksr+   Úkwargsr   úUnion[AgentAction, AgentFinish]c                ó   — dS ©á/  Given input, decided what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with observations
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Action specifying what tool to use.
        Nr7   ©r9   rC   rE   rF   s       r:   ÚplanzBaseSingleActionAgent.planD   ó   € € € r=   c              ‹  ó
   K  — dS rI   r7   rK   s       r:   ÚaplanzBaseSingleActionAgent.aplanW   ó
   è è € € € r=   c                ó   — dS ©ú7Return the input keys.

        :meta private:
        Nr7   r8   s    r:   Ú
input_keysz BaseSingleActionAgent.input_keysj   rM   r=   Úearly_stopping_methodÚstrr   c                óX   — |dk    rt          ddid¦  «        S t          d|› d�¦  «        ‚)úBReturn response when agent has been stopped due to max iterations.Úforcer6   ú3Agent stopped due to iteration limit or time limit.Ú ú'Got unsupported early_stopping_method `ú`©r   Ú
ValueError©r9   rU   rC   rF   s       r:   Úreturn_stopped_responsez-BaseSingleActionAgent.return_stopped_responser   sP   € ð ! GÒ+Ð+åØÐPÐQÐSUñô ð õ ØRÐ:OÐRÐRÐRñô ð r=   Úllmr   ÚtoolsúSequence[BaseTool]Úcallback_managerúOptional[BaseCallbackManager]c                ó   — t           ‚r@   ©ÚNotImplementedError)Úclsrb   rc   re   rF   s        r:   Úfrom_llm_and_toolsz(BaseSingleActionAgent.from_llm_and_toolsƒ   s
   € õ "Ð!r=   c                ó   — t           ‚©z Return Identifier of agent type.rh   r8   s    r:   Ú_agent_typez!BaseSingleActionAgent._agent_type�   ó
   € õ "Ð!r=   r	   c                óæ   •— t          ¦   «                              ¦   «         }	 | j        }n# t          $ r d}Y nw xY wt	          |t
          ¦  «        rt          |j        ¦  «        |d<   n|�||d<   |S )ú*Return dictionary representation of agent.NÚ_type)ÚsuperÚdictrn   ri   Ú
isinstancer$   rV   Úvalue)r9   rF   Ú_dictrr   Ú	__class__s       €r:   rt   zBaseSingleActionAgent.dict’   s‚   ø€ å‘”—’‘”ˆð	ØÔ$ˆEˆEøÝ"ð 	ð 	ð 	ØˆEˆEˆEð	øøøå�e�YÑ'Ô'ð 	#Ý  ¤Ñ-Ô-ˆE�'‰NˆNØÐØ"ˆE�'‰NØˆs   £+ «:¹:Ú	file_pathúUnion[Path, str]ÚNonec                ó:  — t          |t          ¦  «        rt          |¦  «        }n|}|j        }|                     dd¬¦  «         |                      ¦   «         }d|vrt          d| › d�¦  «        ‚|j        dk    rBt          |d¦  «        5 }t          j
        ||d¬	¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S |j        dk    rBt          |d¦  «        5 }t          j
        ||d¬¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S t          |› d�¦  «        ‚)úúSave the agent.

        Args:
            file_path: Path to file to save the agent to.

        Example:
        .. code-block:: python

            # If working with agent executor
            agent.agent.save(file_path="path/agent.yaml")
        T©ÚparentsÚexist_okrr   úAgent z does not support savingú.jsonÚwé   ©ÚindentNú.yamlF©Údefault_flow_styleú must be json or yaml)ru   rV   r   ÚparentÚmkdirrt   ri   ÚsuffixÚopenÚjsonÚdumpÚyamlr_   )r9   ry   Ú	save_pathÚdirectory_pathÚ
agent_dictÚfs         r:   ÚsavezBaseSingleActionAgent.saveŸ   sÕ  € õ �i¥Ñ%Ô%ð 	"Ý˜Y™œˆIˆIà!ˆIà"Ô)ˆØ×Ò T°DÐÑ9Ô9Ð9ð —Y’Y‘[”[ˆ
Ø˜*Ð$Ð$Ý%Ð&M¨tÐ&MÐ&MÐ&MÑNÔNÐNàÔ˜wÒ&Ð&Ý�i Ñ%Ô%ð 3¨Ý”	˜* a°Ð2Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3àÔ Ò(Ð(Ý�i Ñ%Ô%ð C¨Ý”	˜* a¸EÐBÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cõ  	Ð@Ð@Ð@ÑAÔAÐAó$   ÂB1Â1B5Â8B5ÃC>Ã>DÄDc                ó   — i S r@   r7   r8   s    r:   Útool_run_logging_kwargsz-BaseSingleActionAgent.tool_run_logging_kwargsÂ   ó   € Øˆ	r=   ©r1   r2   ©r1   r>   r@   ©rC   rD   rE   r+   rF   r   r1   rG   ©rU   rV   rC   rD   rF   r   r1   r   )
rb   r   rc   rd   re   rf   rF   r   r1   r0   ©r1   rV   ©rF   r   r1   r	   ©ry   rz   r1   r{   ©r1   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr;   rA   r   rL   rO   rT   ra   Úclassmethodrk   rn   rt   r–   r™   Ú__classcell__©rx   s   @r:   r0   r0   9   s~  ø€ € € € € Ø)Ð)àðð ð ñ „Xððð ð ð ð ð  $ðð ð ð ñ „^ðð$ ð  $ðð ð ð ñ „^ðð$ Øðð ð ñ „^ñ „Xððð ð ð ð" ð
 ;?ð	"ð "ð "ð "ñ „[ð"ð ð"ð "ð "ñ „Xð"ðð ð ð ð ð ð!Bð !Bð !Bð !BðFð ð ð ð ð ð ð r=   r0   c                  óÔ   ‡ — e Zd ZdZedd„¦   «         Zdd„Ze	 d d!d„¦   «         Ze	 d d!d„¦   «         Z	eedd„¦   «         ¦   «         Z
d"d„Zed#d„¦   «         Zd$ˆ fd„Zd%d„Zd&d„Zˆ xZS )'ÚBaseMultiActionAgentzBase Multi Action Agent class.r1   r2   c                ó   — dgS r4   r7   r8   s    r:   r;   z"BaseMultiActionAgent.return_valuesÉ   r<   r=   r>   c                ó   — d S r@   r7   r8   s    r:   rA   z&BaseMultiActionAgent.get_allowed_toolsÎ   rB   r=   NrC   rD   rE   r+   rF   r   ú%Union[List[AgentAction], AgentFinish]c                ó   — dS ©a5  Given input, decided what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with the observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Actions specifying what tool to use.
        Nr7   rK   s       r:   rL   zBaseMultiActionAgent.planÑ   rM   r=   c              ‹  ó
   K  — dS r±   r7   rK   s       r:   rO   zBaseMultiActionAgent.aplanä   rP   r=   c                ó   — dS rR   r7   r8   s    r:   rT   zBaseMultiActionAgent.input_keys÷   rM   r=   rU   rV   r   c                óX   — |dk    rt          ddid¦  «        S t          d|› d�¦  «        ‚)rX   rY   r6   z$Agent stopped due to max iterations.r[   r\   r]   r^   r`   s       r:   ra   z,BaseMultiActionAgent.return_stopped_responseÿ   sG   € ð ! GÒ+Ð+å Ð*PÐQÐSUÑVÔVÐVåØRÐ:OÐRÐRÐRñô ð r=   c                ó   — t           ‚rm   rh   r8   s    r:   rn   z BaseMultiActionAgent._agent_type  ro   r=   r	   c                óš   •— t          ¦   «                              ¦   «         }	 t          | j        ¦  «        |d<   n# t          $ r Y nw xY w|S )rq   rr   )rs   rt   rV   rn   ri   ©r9   rF   rw   rx   s      €r:   rt   zBaseMultiActionAgent.dict  sT   ø€ å‘”—’‘”ˆð	Ý  Ô!1Ñ2Ô2ˆE�'‰NˆNøÝ"ð 	ð 	ð 	ØˆDð	øøøàˆs   £; »
AÁAry   rz   r{   c                ó:  — t          |t          ¦  «        rt          |¦  «        }n|}|                      ¦   «         }d|vrt	          d| › d�¦  «        ‚|j        }|                     dd¬¦  «         |j        dk    rBt          |d¦  «        5 }t          j
        ||d¬	¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S |j        dk    rBt          |d¦  «        5 }t          j
        ||d¬¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S t          |› d�¦  «        ‚)r}   rr   r�   z does not support saving.Tr~   r‚   rƒ   r„   r…   Nr‡   Frˆ   rŠ   )ru   rV   r   rt   ri   r‹   rŒ   r�   rŽ   r�   r�   r‘   r_   )r9   ry   r’   r”   r“   r•   s         r:   r–   zBaseMultiActionAgent.save  sÕ  € õ �i¥Ñ%Ô%ð 	"Ý˜Y™œˆIˆIà!ˆIð —Y’Y‘[”[ˆ
Ø˜*Ð$Ð$Ý%Ð&N¨tÐ&NÐ&NÐ&NÑOÔOÐOà"Ô)ˆØ×Ò T°DÐÑ9Ô9Ð9àÔ˜wÒ&Ð&Ý�i Ñ%Ô%ð 3¨Ý”	˜* a°Ð2Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3àÔ Ò(Ð(Ý�i Ñ%Ô%ð C¨Ý”	˜* a¸EÐBÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cõ  	Ð@Ð@Ð@ÑAÔAÐAr—   c                ó   — i S r@   r7   r8   s    r:   r™   z,BaseMultiActionAgent.tool_run_logging_kwargs?  rš   r=   r›   rœ   r@   ©rC   rD   rE   r+   rF   r   r1   r¯   rž   rŸ   r    r¡   r¢   )r£   r¤   r¥   r¦   r§   r;   rA   r   rL   rO   rT   ra   rn   rt   r–   r™   r©   rª   s   @r:   r¬   r¬   Æ   sT  ø€ € € € € Ø(Ð(àðð ð ñ „Xððð ð ð ð ð  $ðð ð ð ñ „^ðð$ ð  $ðð ð ð ñ „^ðð$ Øðð ð ñ „^ñ „Xððð ð ð ð ð"ð "ð "ñ „Xð"ðð ð ð ð ð ð!Bð !Bð !Bð !BðFð ð ð ð ð ð ð r=   r¬   c                  ó*   — e Zd ZdZedd„¦   «         ZdS )	ÚAgentOutputParserz=Base class for parsing agent output into agent action/finish.ÚtextrV   r1   rG   c                ó   — dS )z$Parse text into agent action/finish.Nr7   ©r9   r½   s     r:   ÚparsezAgentOutputParser.parseF  rM   r=   N)r½   rV   r1   rG   ©r£   r¤   r¥   r¦   r   rÀ   r7   r=   r:   r¼   r¼   C  s8   € € € € € ØGÐGàð3ð 3ð 3ñ „^ð3ð 3ð 3r=   r¼   c                  ó*   — e Zd ZdZedd„¦   «         ZdS )	ÚMultiActionAgentOutputParserz>Base class for parsing agent output into agent actions/finish.r½   rV   r1   r¯   c                ó   — dS )z%Parse text into agent actions/finish.Nr7   r¿   s     r:   rÀ   z"MultiActionAgentOutputParser.parseP  rM   r=   N)r½   rV   r1   r¯   rÁ   r7   r=   r:   rÃ   rÃ   K  s;   € € € € € ð IÐHàð4ð 4ð 4ñ „^ð4ð 4ð 4r=   rÃ   c                  ó’   — e Zd ZU dZded<   	 g Zded<   	  G d„ d¦  «        Zedd	„¦   «         Zedd
„¦   «         Z		 ddd„Z
	 ddd„ZdS )ÚRunnableAgentúAgent powered by runnables.z/Runnable[dict, Union[AgentAction, AgentFinish]]Úrunnabler2   Ú_input_keysc                  ó   — e Zd ZdZdZdS )úRunnableAgent.Configú'Configuration for this pydantic object.TN©r£   r¤   r¥   r¦   Úarbitrary_types_allowedr7   r=   r:   ÚConfigrË   ]  ó   € € € € € Ø5Ð5à"&ÐÐÐr=   rÏ   r1   c                ó   — g S ©r5   r7   r8   s    r:   r;   zRunnableAgent.return_valuesb  ó	   € ð ˆ	r=   c                ó   — | j         S ©úQReturn the input keys.

        Returns:
            List of input keys.
        ©rÉ   r8   s    r:   rT   zRunnableAgent.input_keysg  ó   € ð ÔÐr=   NrC   rD   rE   r+   rF   r   rG   c                óR   — i |¥d|i¥}| j                              |d|i¬¦  «        }|S ©á4  Given input, decided what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with the observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Action specifying what tool to use.
        rC   rE   ©Úconfig©rÈ   Úinvoke©r9   rC   rE   rF   Úinputsr6   s         r:   rL   zRunnableAgent.planp  s?   € ð" J�FÐIÐ3Ð5GÐHÐIˆØ”×%Ò% f°kÀ9Ð5MÐ%ÑNÔNˆØˆr=   c              ‹  ób   K  — i |¥d|i¥}| j                              |d|i¬¦  «        ƒ d{V —†}|S ©rJ   rC   rE   rÜ   N©rÈ   Úainvokerà   s         r:   rO   zRunnableAgent.aplan…  óU   è è € ð( J�FÐIÐ3Ð5GÐHÐIˆØ”}×,Ò,¨V¸[È)Ð<TÐ,ÑUÔUÐUÐUÐUÐUÐUÐUˆØˆr=   r›   r@   r�   ©r£   r¤   r¥   r¦   Ú__annotations__rÉ   rÏ   r§   r;   rT   rL   rO   r7   r=   r:   rÆ   rÆ   U  sã   € € € € € € Ø%Ð%à=Ð=Ð=Ñ=Ø/Ø€KÐÐÐÑØð'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð
 ðð ð ñ „Xðð ð ð  ð  ñ „Xð ð  $ðð ð ð ð ð0  $ðð ð ð ð ð ð r=   rÆ   c                  ó’   — e Zd ZU dZded<   	 g Zded<   	  G d„ d¦  «        Zedd	„¦   «         Zedd
„¦   «         Z		 ddd„Z
	 ddd„ZdS )ÚRunnableMultiActionAgentrÇ   z5Runnable[dict, Union[List[AgentAction], AgentFinish]]rÈ   r2   rÉ   c                  ó   — e Zd ZdZdZdS )úRunnableMultiActionAgent.ConfigrÌ   TNrÍ   r7   r=   r:   rÏ   rì   ¦  rÐ   r=   rÏ   r1   c                ó   — g S rÒ   r7   r8   s    r:   r;   z&RunnableMultiActionAgent.return_values«  rÓ   r=   c                ó   — | j         S rÕ   r×   r8   s    r:   rT   z#RunnableMultiActionAgent.input_keys°  rØ   r=   NrC   rD   rE   r+   rF   r   r¯   c                óR   — i |¥d|i¥}| j                              |d|i¬¦  «        }|S rÚ   rÞ   rà   s         r:   rL   zRunnableMultiActionAgent.plan¹  s?   € ð( J�FÐIÐ3Ð5GÐHÐIˆØ”×%Ò% f°kÀ9Ð5MÐ%ÑNÔNˆØˆr=   c              ‹  ób   K  — i |¥d|i¥}| j                              |d|i¬¦  «        ƒ d{V —†}|S rã   rä   rà   s         r:   rO   zRunnableMultiActionAgent.aplanÑ  ræ   r=   r›   r@   rº   rç   r7   r=   r:   rê   rê   ž  sã   € € € € € € Ø%Ð%àCÐCÐCÑCØ0Ø€KÐÐÐÑØð'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð
 ðð ð ñ „Xðð ð ð  ð  ñ „Xð ð  $ðð ð ð ð ð6  $ðð ð ð ð ð ð r=   rê   z0.1.0zpUse new agent constructor methods like create_react_agent, create_json_agent, create_structured_chat_agent, etc.z0.2.0)ÚalternativeÚremovalc                  ó‚   ‡ — e Zd ZU dZded<   	 ded<   	 ded<   	 edd	„¦   «         Zdˆ fd„Z	 ddd„Z	 ddd„Z	dd„Z
ˆ xZS )ÚLLMSingleActionAgentz$Base class for single action agents.r-   Ú	llm_chainr¼   Úoutput_parserr2   Ústopr1   c                óV   — t          t          | j        j        ¦  «        dhz
  ¦  «        S )rÖ   rC   ©ÚlistÚsetrõ   rT   r8   s    r:   rT   zLLMSingleActionAgent.input_keysü  s(   € õ •C˜œÔ1Ñ2Ô2Ð6JÐ5KÑKÑLÔLÐLr=   rF   r   r	   c                óN   •— t          ¦   «                              ¦   «         }|d= |S ©rq   rö   ©rs   rt   r·   s      €r:   rt   zLLMSingleActionAgent.dict  ó!   ø€ å‘”—’‘”ˆØ�/Ð"Øˆr=   NrC   rD   rE   r+   rG   c                ól   —  | j         j        d|| j        |dœ|¤Ž}| j                             |¦  «        S )rÛ   ©rC   r÷   rE   r7   )rõ   Úrunr÷   rö   rÀ   ©r9   rC   rE   rF   r6   s        r:   rL   zLLMSingleActionAgent.plan  sR   € ð" $�”Ô#ð 
Ø1Ø”Øð
ð 
ð ð	
ð 
ˆð Ô!×'Ò'¨Ñ/Ô/Ð/r=   c              ‹  ó|   K  —  | j         j        d|| j        |dœ|¤Žƒ d{V —†}| j                             |¦  «        S )rJ   r  Nr7   )rõ   Úarunr÷   rö   rÀ   r  s        r:   rO   zLLMSingleActionAgent.aplan$  st   è è € ð" +�t”~Ô*ð 
Ø1Ø”Øð
ð 
ð ð	
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð Ô!×'Ò'¨Ñ/Ô/Ð/r=   c                óV   — dt          | j        ¦  «        dk    rdn| j        d         dœS )Nr[   r   ©Ú
llm_prefixÚobservation_prefix)Úlenr÷   r8   s    r:   r™   z,LLMSingleActionAgent.tool_run_logging_kwargs=  s3   € àÝ(+¨D¬I©¬¸!Ò(;Ð(; " "ÀÄÈ1Äð
ð 
ð 	
r=   r›   r    r@   r�   r¢   )r£   r¤   r¥   r¦   rè   r§   rT   rt   rL   rO   r™   r©   rª   s   @r:   rô   rô   ê  sã   ø€ € € € € € ð /Ð.àÐÐÑØ$Ø$Ð$Ð$Ñ$Ø)Ø€O€O�OØ%àðMð Mð Mñ „XðMðð ð ð ð ð ð  $ð0ð 0ð 0ð 0ð 0ð8  $ð0ð 0ð 0ð 0ð 0ð2
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r=   rô   c                  óÖ  ‡ — e Zd ZU dZded<   ded<   dZded<   d6ˆ fd„Zd7d„Zed8d„¦   «         Z	d9d„Z
ed8d„¦   «         Zd:d„Z	 d;d<d„Z	 d;d<d„Zd=d„Zed8d „¦   «         Z e¦   «         d>d"„¦   «         Zeed?d#„¦   «         ¦   «         Zeed?d$„¦   «         ¦   «         Zeed@d(„¦   «         ¦   «         ZedAd*„¦   «         ZeedBd+„¦   «         ¦   «         Ze	 	 dCdDd1„¦   «         ZdEd4„ZdFd5„Zˆ xZS )GÚAgentzéAgent that calls the language model and deciding the action.

    This is driven by an LLMChain. The prompt in the LLMChain MUST include
    a variable called "agent_scratchpad" where the agent can put its
    intermediary work.
    r-   rõ   r¼   rö   Nr>   Úallowed_toolsrF   r   r1   r	   c                óN   •— t          ¦   «                              ¦   «         }|d= |S rý   rþ   r·   s      €r:   rt   z
Agent.dictX  rÿ   r=   c                ó   — | j         S r@   )r  r8   s    r:   rA   zAgent.get_allowed_tools^  s   € ØÔ!Ð!r=   r2   c                ó   — dgS )Nr6   r7   r8   s    r:   r;   zAgent.return_valuesa  s
   € àˆzÐr=   r½   rV   c                ó    — t          d¦  «        ‚)zFix the text.z(fix_text not implemented for this agent.©r_   r¿   s     r:   Ú	_fix_textzAgent._fix_texte  s   € åÐCÑDÔDÐDr=   c                ór   — d| j                              ¦   «         › �d| j                              ¦   «         › �gS )Nú
z
	)r	  Úrstripr8   s    r:   Ú_stopzAgent._stopi  sB   € ð 4�Ô(×/Ò/Ñ1Ô1Ð3Ð3Ø5�4Ô*×1Ò1Ñ3Ô3Ð5Ð5ð
ð 	
r=   rC   rD   úUnion[str, List[BaseMessage]]c                ó\   — d}|D ]&\  }}||j         z  }|d| j        › |› d| j        › �z  }Œ'|S )zJConstruct the scratchpad that lets the agent continue its thought process.r[   r  )Úlogr	  r  )r9   rC   ÚthoughtsÚactionÚobservations        r:   Ú_construct_scratchpadzAgent._construct_scratchpadp  sW   € ð ˆØ#5ð 	Wð 	WÑˆF�KØ˜œ
Ñ"ˆHØÐV˜TÔ4ÐV°kÐVÐVÀTÄ_ÐVÐVÑVˆHˆHØˆr=   rE   r+   rG   c                óz   —  | j         |fi |¤Ž} | j        j        dd|i|¤Ž}| j                             |¦  «        S )rJ   rE   r7   )Úget_full_inputsrõ   Úpredictrö   rÀ   )r9   rC   rE   rF   Úfull_inputsÚfull_outputs         r:   rL   z
Agent.planz  sU   € ð" +�dÔ*Ð+=ÐHÐHÀÐHÐHˆØ,�d”nÔ,ÐPÐP°yÐPÀKÐPÐPˆØÔ!×'Ò'¨Ñ4Ô4Ð4r=   c              ‹  óš   K  —  | j         |fi |¤Ž} | j        j        dd|i|¤Žƒ d{V —†}| j                             |¦  «        ƒ d{V —†}|S )rJ   rE   Nr7   )r   rõ   Úapredictrö   Úaparse)r9   rC   rE   rF   r"  r#  Úagent_outputs          r:   rO   zAgent.aplan�  s‚   è è € ð" +�dÔ*Ð+=ÐHÐHÀÐHÐHˆØ3˜DœNÔ3ÐWÐW¸iÐWÈ;ÐWÐWÐWÐWÐWÐWÐWÐWˆØ!Ô/×6Ò6°{ÑCÔCÐCÐCÐCÐCÐCÐCˆØÐr=   úDict[str, Any]c                óP   — |                       |¦  «        }|| j        dœ}i |¥|¥}|S )z@Create the full inputs for the LLMChain from intermediate steps.©Úagent_scratchpadr÷   )r  r  )r9   rC   rF   r  Ú
new_inputsr"  s         r:   r   zAgent.get_full_inputs¥  s<   € ð ×-Ò-Ð.@ÑAÔAˆØ*2¸D¼JÐGÐGˆ
Ø.˜Ð. :Ð.ˆØÐr=   c                óV   — t          t          | j        j        ¦  «        dhz
  ¦  «        S )rS   r+  rù   r8   s    r:   rT   zAgent.input_keys®  s(   € õ •C˜œÔ1Ñ2Ô2Ð6HÐ5IÑIÑJÔJÐJr=   Úvaluesc                óp  — |d         j         }d|j        vrŸt                               d¦  «         |j                             d¦  «         t          |t          ¦  «        r|xj        dz  c_        nEt          |t          ¦  «        r|xj	        dz  c_	        nt          dt          |¦  «        › �¦  «        ‚|S )z$Validate that prompt matches format.rõ   r+  zl`agent_scratchpad` should be a variable in prompt.input_variables. Did not find it, so adding it at the end.z
{agent_scratchpad}zGot unexpected prompt type )ÚpromptÚinput_variablesÚloggerÚwarningÚappendru   r   Útemplater   r�   r_   Útype)rj   r.  r0  s      r:   Úvalidate_promptzAgent.validate_prompt¶  sÃ   € ð ˜Ô$Ô+ˆØ VÔ%;Ð;Ð;Ý�NŠNð=ñô ð ð Ô"×)Ò)Ð*<Ñ=Ô=Ð=Ý˜&¥.Ñ1Ô1ð OØ�”Ð#9Ñ9�”�Ý˜FÕ$9Ñ:Ô:ð OØ�”Ð!7Ñ7�”�å Ð!M½tÀF¹|¼|Ð!MÐ!MÑNÔNÐNØˆr=   c                ó   — dS )z&Prefix to append the observation with.Nr7   r8   s    r:   r	  zAgent.observation_prefixÈ  rM   r=   c                ó   — dS )z#Prefix to append the LLM call with.Nr7   r8   s    r:   r  zAgent.llm_prefixÍ  rM   r=   rc   rd   r   c                ó   — dS )zCreate a prompt for this class.Nr7   ©rj   rc   s     r:   Úcreate_promptzAgent.create_promptÒ  rM   r=   r{   c                ó   — dS )z.Validate that appropriate tools are passed in.Nr7   r;  s     r:   Ú_validate_toolszAgent._validate_tools×  s	   € ð 	ˆr=   c                ó   — dS )z)Get default output parser for this class.Nr7   )rj   rF   s     r:   Ú_get_default_output_parserz Agent._get_default_output_parserÜ  rM   r=   rb   r   re   rf   úOptional[AgentOutputParser]c                óÒ   — |                       |¦  «         t          ||                      |¦  «        |¬¦  «        }d„ |D ¦   «         }|p|                      ¦   «         } | d|||dœ|¤ŽS )z)Construct an agent from an LLM and tools.)rb   r0  re   c                ó   — g | ]	}|j         ‘Œ
S r7   ©Úname©Ú.0Útools     r:   ú
<listcomp>z,Agent.from_llm_and_tools.<locals>.<listcomp>ñ  s   € Ð2Ð2Ð2 D�d”iÐ2Ð2Ð2r=   )rõ   r  rö   r7   )r>  r-   r<  r@  )	rj   rb   rc   re   rö   rF   rõ   Ú
tool_namesÚ_output_parsers	            r:   rk   zAgent.from_llm_and_toolsá  sŸ   € ð 	×Ò˜EÑ"Ô"Ð"ÝØØ×$Ò$ UÑ+Ô+Ø-ð
ñ 
ô 
ˆ	ð
 3Ð2¨EÐ2Ñ2Ô2ˆ
Ø&ÐJ¨#×*HÒ*HÑ*JÔ*JˆØˆsð 
ØØ$Ø(ð
ð 
ð ð	
ð 
ð 	
r=   rU   r   c                óŒ  — |dk    rt          ddid¦  «        S |dk    r•d}|D ]&\  }}||j        z  }|d| j        › |› d| j        › �z  }Œ'|dz  }|| j        dœ}i |¥|¥} | j        j        di |¤Ž}	| j                             |	¦  «        }
t          |
t           ¦  «        r|
S t          d|	i|	¦  «        S t          d	|› �¦  «        ‚)rX   rY   r6   rZ   r[   Úgenerater  zB

I now need to return a final answer based on the previous steps:r*  zBearly_stopping_method should be one of `force` or `generate`, got Nr7   )r   r  r	  r  r  rõ   r!  rö   rÀ   ru   r_   )r9   rU   rC   rF   r  r  r  r,  r"  r#  Úparsed_outputs              r:   ra   zAgent.return_stopped_responseú  s;  € ð ! GÒ+Ð+åØÐPÐQÐSUñô ð ð # jÒ0Ð0àˆHØ'9ð ð Ñ#�˜Ø˜FœJÑ&�ØØR˜Ô0ÐR°+ÐRÐRÀÄÐRÐRñ��ð ØVñˆHð /7ÀÄ
ÐKÐKˆJØ2˜VÐ2 zÐ2ˆKØ0˜$œ.Ô0Ð?Ð?°;Ð?Ð?ˆKà Ô.×4Ò4°[ÑAÔAˆMÝ˜-­Ñ5Ô5ð Ià$Ð$õ # H¨kÐ#:¸KÑHÔHÐHåð/Ø,ð/ð /ñô ð r=   c                ó    — | j         | j        dœS )Nr  r  r8   s    r:   r™   zAgent.tool_run_logging_kwargs$  s   € àœ/Ø"&Ô"9ð
ð 
ð 	
r=   r    rœ   r›   )r½   rV   r1   rV   )rC   rD   r1   r  r@   r�   )rC   rD   rF   r   r1   r(  ©r.  r	   r1   r	   rŸ   )rc   rd   r1   r   )rc   rd   r1   r{   )rF   r   r1   r¼   )NN)rb   r   rc   rd   re   rf   rö   rA  rF   r   r1   r  rž   r¢   )r£   r¤   r¥   r¦   rè   r  rt   rA   r§   r;   r  r  r  rL   rO   r   rT   r   r7  r   r	  r  r¨   r<  r>  r@  rk   ra   r™   r©   rª   s   @r:   r  r  D  s¯  ø€ € € € € € ðð ð ÐÐÑØ$Ð$Ð$Ñ$Ø)-€MÐ-Ð-Ð-Ñ-ðð ð ð ð ð ð"ð "ð "ð "ð ðð ð ñ „XððEð Eð Eð Eð ð
ð 
ð 
ñ „Xð
ðð ð ð ð  $ð5ð 5ð 5ð 5ð 5ð0  $ðð ð ð ð ð,ð ð ð ð ðKð Kð Kñ „XðKð €^ÑÔðð ð ñ Ôðð" Øð5ð 5ð 5ñ „^ñ „Xð5ð Øð2ð 2ð 2ñ „^ñ „Xð2ð Øð.ð .ð .ñ „^ñ „[ð.ð ðð ð ñ „[ðð Øð8ð 8ð 8ñ „^ñ „[ð8ð ð
 ;?Ø59ð
ð 
ð 
ð 
ñ „[ð
ð0(ð (ð (ð (ðT
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r=   r  c                  óL   — e Zd ZU dZdZded<   	 dZded<   	 	 ddd„Z	 ddd„ZdS )ÚExceptionToolz!Tool that just returns the query.Ú
_ExceptionrV   rE  zException toolÚdescriptionNÚqueryÚrun_managerú#Optional[CallbackManagerForToolRun]r1   c                ó   — |S r@   r7   ©r9   rU  rV  s      r:   Ú_runzExceptionTool._run3  s	   € ð
 ˆr=   ú(Optional[AsyncCallbackManagerForToolRun]c              ƒ  ó
   K  — |S r@   r7   rY  s      r:   Ú_arunzExceptionTool._arun:  s   è è € ð
 ˆr=   r@   )rU  rV   rV  rW  r1   rV   )rU  rV   rV  r[  r1   rV   )	r£   r¤   r¥   r¦   rE  rè   rT  rZ  r]  r7   r=   r:   rR  rR  +  sƒ   € € € € € € Ø+Ð+à€DÐÐÐÑØØ'€KÐ'Ð'Ð'Ñ'Ø"ð
 <@ðð ð ð ð ð AEðð ð ð ð ð ð r=   rR  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Zded<   	 dZded<   	 dZ	ded<   	 dZ
ded<   e	 dadbd„¦   «         Z e¦   «         dcd„¦   «         Z e¦   «         dcd „¦   «         Z ed!¬"¦  «        dcd#„¦   «         Zddd'„Zddd(„Z	 daddd)œded.„Zedfd0„¦   «         Zedfd1„¦   «         Zdgd4„Zdhd9„Z	 dadidA„Z	 dadjdC„ZdkdF„Z	 dadldL„Z	 dadmdN„Z	 dadndO„Z	 dadodQ„Z	 dadpdR„Z 	 dadqdS„Z!drdW„Z"dsdX„Z#	 dadtd^„Z$	 dadud`„Z%dS )vÚAgentExecutorzAgent that is using tools.ú2Union[BaseSingleActionAgent, BaseMultiActionAgent]Úagentrd   rc   FÚboolÚreturn_intermediate_stepsé   zOptional[int]Úmax_iterationsNzOptional[float]Úmax_execution_timerY   rV   rU   z8Union[bool, str, Callable[[OutputParserException], str]]Úhandle_parsing_errorséÿÿÿÿzTUnion[int, Callable[[List[Tuple[AgentAction, str]]], List[Tuple[AgentAction, str]]]]Útrim_intermediate_stepsrE   r+   rF   r   r1   c                ó   —  | d|||dœ|¤ŽS )zCreate from agent and tools.)ra  rc   rE   r7   r7   )rj   ra  rc   rE   rF   s        r:   Úfrom_agent_and_toolsz"AgentExecutor.from_agent_and_toolsr  s5   € ð ˆsð 
ØØØð
ð 
ð ð	
ð 
ð 	
r=   r.  r	   c                óæ   — |d         }|d         }|                      ¦   «         }|�Jt          |¦  «        t          d„ |D ¦   «         ¦  «        k    r t          d|› dd„ |D ¦   «         › d�¦  «        ‚|S )	ú.Validate that tools are compatible with agent.ra  rc   Nc                ó   — g | ]	}|j         ‘Œ
S r7   rD  rF  s     r:   rI  z0AgentExecutor.validate_tools.<locals>.<listcomp>‰  s   € Ð)FÐ)FÐ)F¸¨$¬)Ð)FÐ)FÐ)Fr=   zAllowed tools (z!) different than provided tools (c                ó   — g | ]	}|j         ‘Œ
S r7   rD  rF  s     r:   rI  z0AgentExecutor.validate_tools.<locals>.<listcomp>Œ  s   € Ð'DÐ'DÐ'D°d¨¬	Ð'DÐ'DÐ'Dr=   ú))rA   rû   r_   )rj   r.  ra  rc   r  s        r:   Úvalidate_toolszAgentExecutor.validate_tools‚  s§   € ð �w”ˆØ�w”ˆØ×/Ò/Ñ1Ô1ˆØÐ$Ý�=Ñ!Ô!¥SÐ)FÐ)FÀÐ)FÑ)FÔ)FÑ%GÔ%GÒGÐGÝ ðH mð Hð HØ'DÐ'D¸eÐ'DÑ'DÔ'DðHð Hð Hñô ð ð ˆr=   c                ó†   — |d         }|d         }t          |t          ¦  «        r|D ]}|j        rt          d¦  «        ‚Œ|S )rm  ra  rc   zKTools that have `return_direct=True` are not allowed in multi-action agents)ru   r¬   Úreturn_directr_   )rj   r.  ra  rc   rH  s        r:   Úvalidate_return_direct_toolz)AgentExecutor.validate_return_direct_tool�  sf   € ð �w”ˆØ�w”ˆÝ�eÕ1Ñ2Ô2ð 	Øð ð �ØÔ%ð Ý$ð1ñô ð ðð
 ˆr=   T)Úprec                ó&  — |d         }t          |t          ¦  «        rs	 |j        }|t          t          t
                   t          f         k    }n# t          $ r}d}Y d}~nd}~ww xY w|rt          |¬¦  «        |d<   nt          |¬¦  «        |d<   |S )z'Convert runnable to agent if passed in.ra  FN)rÈ   )
ru   r   Ú
OutputTyper   r   r   r   Ú	Exceptionrê   rÆ   )rj   r.  ra  Úoutput_typeÚmulti_actionÚ_s         r:   Úvalidate_runnable_agentz%AgentExecutor.validate_runnable_agentž  sµ   € ð �w”ˆÝ�e�XÑ&Ô&ð 	@ðTØ#Ô.�ð  +­eµD½Ô4EÅ{Ð4RÔ.SÒS��øõ ð %ð %ð %Ø$������øøøøð%øøøð
 ð @Ý":ÀEÐ"JÑ"JÔ"J��w‘�å"/¸Ð"?Ñ"?Ô"?��w‘Øˆs   ŸA Á
A%ÁA Á A%ry   rz   r{   c                ó    — t          d¦  «        ‚)z7Raise error - saving not supported for Agent Executors.zpSaving not supported for agent executors. If you are trying to save the agent, please use the `.save_agent(...)`r  ©r9   ry   s     r:   r–   zAgentExecutor.save°  s   € åð!ñ
ô 
ð 	
r=   c                ó6   — | j                              |¦  «        S )zSave the underlying agent.)ra  r–   r~  s     r:   Ú
save_agentzAgentExecutor.save_agent¸  s   € àŒz�Š˜yÑ)Ô)Ð)r=   )Úinclude_run_infoÚasync_rá   r�  r‚  r#   c               ó4   — t          | ||| j        |¬¦  «        S )z9Enables iteration over steps taken to reach final output.)Útagsr�  )r#   r„  )r9   rá   rE   r�  r‚  s        r:   ÚiterzAgentExecutor.iter¼  s,   € õ %ØØØØ”Ø-ð
ñ 
ô 
ð 	
r=   r2   c                ó   — | j         j        S )rS   )ra  rT   r8   s    r:   rT   zAgentExecutor.input_keysÍ  s   € ð ŒzÔ$Ð$r=   c                óH   — | j         r| j        j        dgz   S | j        j        S )z@Return the singular output key.

        :meta private:
        rC   )rc  ra  r;   r8   s    r:   Úoutput_keyszAgentExecutor.output_keysÕ  s.   € ð Ô)ð 	,Ø”:Ô+Ð/CÐ.DÑDÐDà”:Ô+Ð+r=   rE  r!   c                ó0   — d„ | j         D ¦   «         |         S )zLookup tool by name.c                ó   — i | ]
}|j         |“ŒS r7   rD  rF  s     r:   ú
<dictcomp>z-AgentExecutor.lookup_tool.<locals>.<dictcomp>â  s   € Ð7Ð7Ð7 D�”	˜4Ð7Ð7Ð7r=   )rc   )r9   rE  s     r:   Úlookup_toolzAgentExecutor.lookup_toolà  s   € à7Ð7¨D¬JÐ7Ñ7Ô7¸Ô=Ð=r=   Ú
iterationsÚintÚtime_elapsedÚfloatc                óV   — | j         �|| j         k    rdS | j        �|| j        k    rdS dS )NFT)re  rf  )r9   r�  r�  s      r:   Ú_should_continuezAgentExecutor._should_continueä  s>   € ØÔÐ*¨z¸TÔ=PÒ/PÐ/PØ�5àÔ#Ð/Ø Ô 7Ò7Ð7à�5àˆtr=   r6   r   rC   rú   rV  ú$Optional[CallbackManagerForChainRun]r(  c                ój   — |r|                      |d| j        ¬¦  «         |j        }| j        r||d<   |S ©NÚgreen)ÚcolorÚverboserC   ©Úon_agent_finishr˜  r;   rc  ©r9   r6   rC   rV  Úfinal_outputs        r:   Ú_returnzAgentExecutor._returnï  sO   € ð ð 	UØ×'Ò'¨°gÀtÄ|Ð'ÑTÔTÐTØÔ+ˆØÔ)ð 	DØ1CˆLÐ-Ñ.ØÐr=   ú)Optional[AsyncCallbackManagerForChainRun]c              ƒ  óz   K  — |r#|                      |d| j        ¬¦  «        ƒ d {V —† |j        }| j        r||d<   |S r•  r™  r›  s        r:   Ú_areturnzAgentExecutor._areturnü  s{   è è € ð ð 	Ø×-Ò-Ø˜g¨t¬|ð .ñ ô ð ð ð ð ð ð ð ð Ô+ˆØÔ)ð 	DØ1CˆLÐ-Ñ.ØÐr=   ÚNextStepOutputú1Union[AgentFinish, List[Tuple[AgentAction, str]]]c                óŠ   — t          |d         t          ¦  «        rt          |¦  «        dk    sJ ‚|d         S d„ |D ¦   «         S )Nrh  é   c                óT   — g | ]%}t          |t          ¦  «        ¯|j        |j        f‘Œ&S r7   )ru   r   r  r  ©rG  Úas     r:   rI  z4AgentExecutor._consume_next_step.<locals>.<listcomp>  s@   € ð ð ð Ø./½ZÈÍ9Ñ=UÔ=UðØ”˜1œ=Ð)ðð ð r=   )ru   r   r
  )r9   r.  s     r:   Ú_consume_next_stepz AgentExecutor._consume_next_step  s\   € õ �f˜R”j¥+Ñ.Ô.ð 	Ý�v‘;”; !Ò#Ð#Ð#Ð#Ø˜"”:Ððð Ø39ðñ ô ð r=   Úname_to_tool_mapúDict[str, BaseTool]Úcolor_mappingúDict[str, str]rD   c           
     ón   — |                       d„ |                      |||||¦  «        D ¦   «         ¦  «        S )Nc                ó   — g | ]}|‘ŒS r7   r7   r¦  s     r:   rI  z1AgentExecutor._take_next_step.<locals>.<listcomp>  s(   € ð 	ð 	ð 	àð ð	ð 	ð 	r=   )r¨  Ú_iter_next_step©r9   r©  r«  rá   rC   rV  s         r:   Ú_take_next_stepzAgentExecutor._take_next_step  sW   € ð ×&Ò&ð	ð 	à×-Ò-Ø$Ø!ØØ&Øñô ð	ñ 	ô 	ñ
ô 
ð 	
r=   ú4Iterator[Union[AgentFinish, AgentAction, AgentStep]]c              #  ó´  K  — 	 |                       |¦  «        } | j        j        |fd|r|                     ¦   «         ndi|¤Ž}�nª# t          $ �rœ}t          | j        t          ¦  «        r	| j         }nd}|rt          dt          |¦  «        › �¦  «        ‚t          |¦  «        }	t          | j        t          ¦  «        r3|j
        r)t          |j        ¦  «        }
t          |j        ¦  «        }	n^d}
n[t          | j        t          ¦  «        r| j        }
n9t          | j        ¦  «        r|                      |¦  «        }
nt          d¦  «        ‚t          d|
|	¦  «        }|r|                     |d¬	¦  «         | j                             ¦   «         } t#          ¦   «         j        |j        f| j        d|r|                     ¦   «         ndd
œ|¤Ž}
t+          ||
¬¦  «        V — Y d}~dS d}~ww xY wt          |t,          ¦  «        r|V — dS t          |t          ¦  «        r|g}n|}|D ]}|V — Œ|D �]%}|r|                     |d¬	¦  «         |j        |v rt||j                 }|j        }||j                 }| j                             ¦   «         }|rd|d<    |j        |j        f| j        ||r|                     ¦   «         ndd
œ|¤Ž}
ny| j                             ¦   «         } t3          ¦   «         j        |j        t5          |                     ¦   «         ¦  «        dœf| j        d|r|                     ¦   «         ndd
œ|¤Ž}
t+          ||
¬¦  «        V — �Œ'dS )ú–Take a single step in the thought-action-observation loop.

        Override this to take control of how the agent makes and acts on choices.
        rE   NFú²An output parsing error occurred. In order to pass this error back to the agent and have it try again, pass `handle_parsing_errors=True` to the AgentExecutor. This is the error: úInvalid or incomplete responseú.Got unexpected type of `handle_parsing_errors`rS  r–  )r—  ©r˜  r—  rE   ©r  r  r[   r  ©Úrequested_tool_nameÚavailable_tool_names)Ú_prepare_intermediate_stepsra  rL   Ú	get_childr   ru   rg  rb  r_   rV   Úsend_to_llmr  Ú
llm_outputÚcallabler   Úon_agent_actionr™   rR  r  Ú
tool_inputr˜  r   r   rH  rs  r%   rú   Úkeys)r9   r©  r«  rá   rC   rV  r6   ÚeÚraise_errorr½   r  Útool_run_kwargsÚactionsÚagent_actionrH  rs  r—  s                    r:   r¯  zAgentExecutor._iter_next_step+  sF  è è € ð.	Ø!%×!AÒ!AÐBTÑ!UÔ!UÐð %�T”Z”_Ø"ðð à5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdðð ðð ˆF‰Føõ
 %ð %	ñ %	ð %	Ý˜$Ô4µdÑ;Ô;ð $Ø"&Ô"<Ð<��à#�Øð Ý ð3õ +.¨a©&¬&ð3ð 3ñô ð õ �q‘6”6ˆDÝ˜$Ô4µdÑ;Ô;ð SØ”=ð CÝ"% a¤mÑ"4Ô"4�KÝ˜qœ|Ñ,Ô,�D�Dà"B�K�KÝ˜DÔ6½Ñ<Ô<ð SØ"Ô8��Ý˜$Ô4Ñ5Ô5ð SØ"×8Ò8¸Ñ;Ô;��å Ð!QÑRÔRÐRÝ  ¨{¸DÑAÔAˆFØð CØ×+Ò+¨F¸'Ð+ÑBÔBÐBØ"œj×@Ò@ÑBÔBˆOØ-�-™/œ/Ô-ØÔ!ðàœØØ5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdð	ð ð
 "ðð ˆKõ  6°{ÐCÑCÔCÐCÐCÐCØˆFˆFˆFˆFˆFøøøøðK%	øøøõP �f�kÑ*Ô*ð 	ØˆLˆLˆLØˆFõ �f�kÑ*Ô*ð 	Ø�hˆGˆGàˆGØ#ð 	ð 	ˆLØÐÐÐÐØ#ð 	Jñ 	JˆLØð IØ×+Ò+¨LÀÐ+ÑHÔHÐHàÔ Ð$4Ð4Ð4Ø'¨Ô(9Ô:�Ø $Ô 2�Ø% lÔ&7Ô8�Ø"&¤*×"DÒ"DÑ"FÔ"F�Ø ð 7Ø46�O LÑ1à&˜dœhØ Ô+ðà œLØØ9DÐN˜k×3Ò3Ñ5Ô5Ð5È$ð	ð ð
 &ðð ��ð #'¤*×"DÒ"DÑ"FÔ"F�Ø/�k™mœmÔ/à/;Ô/@Ý04Ð5E×5JÒ5JÑ5LÔ5LÑ0MÔ0Mðð ð	ð
 !œLØØ9DÐN˜k×3Ò3Ñ5Ô5Ð5È$ð	ð 	ð &ð	ð 	�õ  <¸[ÐIÑIÔIÐIÐIÐIÑIð?	Jð 	Js   „A A ÁG-ÁFG(Ç(G-c           
   ƒ  ó~   K  — |                       d„ |                      |||||¦  «        2 ¦   «         ƒ d {V —†¦  «        S )Nc              “  ó$   K  — g | 3 d {V —†	 }|‘Œ6 S r@   r7   r¦  s     r:   rI  z2AgentExecutor._atake_next_step.<locals>.<listcomp>�  sO   è è € ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	àð ð	ð 	ð 	ð 	s   …)r¨  Ú_aiter_next_stepr°  s         r:   Ú_atake_next_stepzAgentExecutor._atake_next_step”  sy   è è € ð ×&Ò&ð	ð 	à#×4Ò4Ø$Ø!ØØ&Øñ ô  ð	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ñ
ô 
ð 	
r=   ú9AsyncIterator[Union[AgentFinish, AgentAction, AgentStep]]c               ó¾  ‡ ‡‡‡‡K  — 	 ‰                       |¦  «        } ‰ j        j        |fd‰r‰                     ¦   «         ndi|¤Žƒ d{V —†}�n˜# t          $ �rŠ}t          ‰ j        t          ¦  «        r	‰ j         }nd}|rt          dt          |¦  «        › �¦  «        ‚t          |¦  «        }	t          ‰ j        t          ¦  «        r3|j
        r)t          |j        ¦  «        }
t          |j        ¦  «        }	n^d}
n[t          ‰ j        t          ¦  «        r‰ j        }
n9t          ‰ j        ¦  «        r‰                      |¦  «        }
nt          d¦  «        ‚t          d|
|	¦  «        }‰ j                             ¦   «         } t!          ¦   «         j        |j        f‰ j        d‰r‰                     ¦   «         nddœ|¤Žƒ d{V —†}
t)          ||
¬	¦  «        W V — Y d}~dS d}~ww xY wt          |t*          ¦  «        r|W V — dS t          |t          ¦  «        r|g}n|}|D ]}|W V — Œdˆˆˆˆ fd„Št-          j        ˆfd„|D ¦   «         Ž ƒ d{V —†}|D ]}|W V — ŒdS )r´  rE   NFrµ  r¶  r·  rS  r¸  r¹  rÉ  r   r1   r   c              “  óx  •K  — ‰r#‰                      | ‰	j        d¬¦  «        ƒ d {V —† | j        ‰v rz‰| j                 }|j        }‰| j                 }‰	j                             ¦   «         }|rd|d<    |j        | j        f‰	j        |‰r‰                     ¦   «         nd dœ|¤Žƒ d {V —†}n‰	j                             ¦   «         } t          ¦   «         j        | j        t          ‰                     ¦   «         ¦  «        dœf‰	j        d ‰r‰                     ¦   «         nd dœ|¤Žƒ d {V —†}t          | |¬¦  «        S )Nr–  )r˜  r—  r[   r  r¸  rº  r¹  )rÂ  r˜  rH  rs  ra  r™   r  rÃ  r¾  r%   rú   rÄ  r   )
rÉ  rH  rs  r—  rÇ  r  r«  r©  rV  r9   s
         €€€€r:   Ú_aperform_agent_actionz>AgentExecutor._aiter_next_step.<locals>._aperform_agent_actionð  sÚ  øè è € ð ð Ø!×1Ò1Ø ¨$¬,¸gð 2ñ ô ð ð ð ð ð ð ð ð Ô Ð$4Ð4Ð4Ø'¨Ô(9Ô:�Ø $Ô 2�Ø% lÔ&7Ô8�Ø"&¤*×"DÒ"DÑ"FÔ"F�Ø ð 7Ø46�O LÑ1à$- D¤IØ Ô+ð%à œLØØ9DÐN˜k×3Ò3Ñ5Ô5Ð5È$ð	%ð %ð
 &ð%ð %ð ð ð ð ð ð ��ð #'¤*×"DÒ"DÑ"FÔ"F�Ø$6¥K¡M¤MÔ$6à/;Ô/@Ý04Ð5E×5JÒ5JÑ5LÔ5LÑ0MÔ0Mðð ð	%ð
 !œLØØ9DÐN˜k×3Ò3Ñ5Ô5Ð5È$ð	%ð 	%ð &ð	%ð 	%ð 	ð 	ð 	ð 	ð 	ð 	�õ  L¸kÐJÑJÔJÐJr=   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r7   r7   )rG  rÉ  rÑ  s     €r:   rI  z2AgentExecutor._aiter_next_step.<locals>.<listcomp>  s%   ø€ ÐOÐOÐO°|Ð$Ð$ \Ñ2Ô2ÐOÐOÐOr=   )rÉ  r   r1   r   )r½  ra  rO   r¾  r   ru   rg  rb  r_   rV   r¿  r  rÀ  rÁ  r   r™   rR  r  rÃ  r˜  r   r   ÚasyncioÚgather)r9   r©  r«  rá   rC   rV  r6   rÅ  rÆ  r½   r  rÇ  rÈ  rÉ  ÚresultÚchunkrÑ  s   ```  `          @r:   rÌ  zAgentExecutor._aiter_next_step©  s�  øøøøøè è € ð,	Ø!%×!AÒ!AÐBTÑ!UÔ!UÐð ,˜4œ:Ô+Ø"ðð à5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdðð ðð ð ð ð ð ð ð ˆF‰Føõ
 %ð #	ñ #	ð #	Ý˜$Ô4µdÑ;Ô;ð $Ø"&Ô"<Ð<��à#�Øð Ý ð3õ +.¨a©&¬&ð3ð 3ñô ð õ �q‘6”6ˆDÝ˜$Ô4µdÑ;Ô;ð SØ”=ð CÝ"% a¤mÑ"4Ô"4�KÝ˜qœ|Ñ,Ô,�D�Dà"B�K�KÝ˜DÔ6½Ñ<Ô<ð SØ"Ô8��Ý˜$Ô4Ñ5Ô5ð SØ"×8Ò8¸Ñ;Ô;��å Ð!QÑRÔRÐRÝ  ¨{¸DÑAÔAˆFØ"œj×@Ò@ÑBÔBˆOØ 4¥¡¤Ô 4ØÔ!ð!àœØØ5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdð	!ð !ð
 "ð!ð !ð ð ð ð ð ð ˆKõ  6°{ÐCÑCÔCÐCÐCÐCÐCØˆFˆFˆFˆFˆFøøøøðG#	øøøõL �f�kÑ*Ô*ð 	ØˆLˆLˆLˆLØˆFõ �f�kÑ*Ô*ð 	Ø�hˆGˆGàˆGØ#ð 	ð 	ˆLØÐÐÐÐÐð#	Kð #	Kð #	Kð #	Kð #	Kð #	Kð #	Kð #	Kð #	KõL ”~ØOÐOÐOÐOÀwÐOÑOÔOð
ð 
ð 
ð 
ð 
ð 
ð 
ˆð
 ð 	ð 	ˆEØˆKˆKˆKˆKˆKð	ð 	s   ‰AA ÁG&ÁE?G!Ç!G&c                óÖ  — d„ | j         D ¦   «         }t          d„ | j         D ¦   «         ddg¬¦  «        }g }d}d}t          j        ¦   «         }|                      ||¦  «        r×|                      |||||¬¦  «        }	t          |	t          ¦  «        r|                      |	||¬¦  «        S |                     |	¦  «         t          |	¦  «        d	k    r7|	d         }
|  
                    |
¦  «        }|�|                      |||¬¦  «        S |d	z  }t          j        ¦   «         |z
  }|                      ||¦  «        °× | j        j        | j        |fi |¤Ž}|                      |||¬¦  «        S )
ú(Run text through and get agent response.c                ó   — i | ]
}|j         |“ŒS r7   rD  rF  s     r:   r‹  z'AgentExecutor._call.<locals>.<dictcomp>%  ó   € ÐCÐCÐC°˜DœI tÐCÐCÐCr=   c                ó   — g | ]	}|j         ‘Œ
S r7   rD  rF  s     r:   rI  z'AgentExecutor._call.<locals>.<listcomp>(  ó   € Ð.Ð.Ð.˜4ˆTŒYÐ.Ð.Ð.r=   r–  Úred©Úexcluded_colorsr   ç        ©rV  r¤  )rc   r"   Útimer’  r±  ru   r   r�  Úextendr
  Ú_get_tool_returnra  ra   rU   ©r9   rá   rV  r©  r«  rC   r�  r�  Ú
start_timeÚnext_step_outputÚnext_step_actionÚtool_returnr6   s                r:   Ú_callzAgentExecutor._call  sÑ  € ð DÐC¸¼
ÐCÑCÔCÐå)Ø.Ð. 4¤:Ð.Ñ.Ô.ÀÈ%Ð@Pð
ñ 
ô 
ˆð =?Ðàˆ
ØˆÝ”Y‘[”[ˆ
à×#Ò# J°Ñ=Ô=ð 	4Ø#×3Ò3Ø ØØØ"Ø'ð  4ñ  ô  Ðõ Ð*­KÑ8Ô8ð Ø—|’|Ø$Ð&8Àkð $ñ ô ð ð ×%Ò%Ð&6Ñ7Ô7Ð7ÝÐ#Ñ$Ô$¨Ò)Ð)Ø#3°AÔ#6Ð à"×3Ò3Ð4DÑEÔE�ØÐ*ØŸ<š<Ø#Ð%7À[ð (ñ ô ð ð ˜!‰OˆJÝœ9™;œ;¨Ñ3ˆLð/ ×#Ò# J°Ñ=Ô=ð 	4ð0 4�”Ô3ØÔ&Ð(:ð
ð 
Ø>Dð
ð 
ˆð �|Š|˜FÐ$6ÀKˆ|ÑPÔPÐPr=   c              ƒ  ó|  K  — d„ | j         D ¦   «         }t          d„ | j         D ¦   «         dg¬¦  «        }g }d}d}t          j        ¦   «         }	 t          | j        ¦  «        4 ƒd{V —† |                      ||¦  «        �r|                      |||||¬¦  «        ƒ d{V —†}	t          |	t          ¦  «        r0|  	                    |	||¬¦  «        ƒ d{V —†cddd¦  «        ƒd{V —† S | 
                    |	¦  «         t          |	¦  «        d	k    rO|	d         }
|                      |
¦  «        }|�0|  	                    |||¬¦  «        ƒ d{V —†cddd¦  «        ƒd{V —† S |d	z  }t          j        ¦   «         |z
  }|                      ||¦  «        �° | j        j        | j        |fi |¤Ž}|  	                    |||¬¦  «        ƒ d{V —†cddd¦  «        ƒd{V —† S # 1 ƒd{V —†swxY w Y   dS # t           t"          j        f$ r:  | j        j        | j        |fi |¤Ž}|  	                    |||¬¦  «        ƒ d{V —†cY S w xY w)
rØ  c                ó   — i | ]
}|j         |“ŒS r7   rD  rF  s     r:   r‹  z(AgentExecutor._acall.<locals>.<dictcomp>T  rÚ  r=   c                ó   — g | ]	}|j         ‘Œ
S r7   rD  rF  s     r:   rI  z(AgentExecutor._acall.<locals>.<listcomp>W  rÜ  r=   r–  rÞ  r   rà  Nrá  r¤  )rc   r"   râ  r.   rf  r’  rÍ  ru   r   r   rã  r
  rä  ra  ra   rU   ÚTimeoutErrorrÓ  rå  s                r:   Ú_acallzAgentExecutor._acallM  sF  è è € ð DÐC¸¼
ÐCÑCÔCÐå)Ø.Ð. 4¤:Ð.Ñ.Ô.ÀÀ	ð
ñ 
ô 
ˆð =?Ðàˆ
ØˆÝ”Y‘[”[ˆ
ð*	Ý& tÔ'>Ñ?Ô?ð !ð !ð !ð !ð !ð !ð !ð !Ø×+Ò+¨J¸ÑEÔEñ <Ø-1×-BÒ-BØ(Ø%ØØ*Ø$/ð .Cñ .ô .ð (ð (ð (ð (ð (ð (Ð$õ "Ð"2µKÑ@Ô@ð Ø%)§]¢]Ø,Ø.Ø(3ð &3ñ &ô &ð  ð  ð  ð  ð  ð  ð!ð !ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !ð !ð  '×-Ò-Ð.>Ñ?Ô?Ð?ÝÐ+Ñ,Ô,°Ò1Ð1Ø+;¸AÔ+>Ð(à&*×&;Ò&;Ð<LÑ&MÔ&M˜Ø&Ð2Ø)-¯ªØ +Ð-?È[ð *7ñ *ô *ð $ð $ð $ð $ð $ð $ð-!ð !ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !ð !ð4  !‘O�JÝ#'¤9¡;¤;°Ñ#;�Lð5 ×+Ò+¨J¸ÑEÔEñ <ð6 <˜œÔ;ØÔ.Ð0Bðð ØFLðð �ð "Ÿ]š]ØÐ.¸Kð +ñ ô ð ð ð ð ð ð ð?!ð !ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !øõD �gÔ2Ð3ð 	ð 	ð 	à7�T”ZÔ7ØÔ*Ð,>ðð ØBHðð ˆFð ŸšØÐ*¸ð 'ñ ô ð ð ð ð ð ð ð ð ð ð	øøøsR   ÁG+ Á)A*GÃG+ Ã&A$GÅ
G+ ÅA(GÇG+ Ç
G"Ç"G+ Ç%G"Ç&G+ Ç+AH;È:H;rç  úTuple[AgentAction, str]úOptional[AgentFinish]c                óî   — |\  }}d„ | j         D ¦   «         }d}t          | j        j        ¦  «        dk    r| j        j        d         }|j        |v r$||j                 j        rt          ||id¦  «        S dS )z&Check if the tool is a returning tool.c                ó   — i | ]
}|j         |“ŒS r7   rD  rF  s     r:   r‹  z2AgentExecutor._get_tool_return.<locals>.<dictcomp>�  rÚ  r=   r6   r   r[   N)rc   r
  ra  r;   rH  rs  r   )r9   rç  rÉ  r  r©  Úreturn_value_keys         r:   rä  zAgentExecutor._get_tool_return‹  s˜   € ð %5Ñ!ˆ�kØCÐC¸¼
ÐCÑCÔCÐØ#ÐÝˆtŒzÔ'Ñ(Ô(¨1Ò,Ð,Ø#œzÔ7¸Ô:ÐàÔÐ 0Ð0Ð0Ø Ô 1Ô2Ô@ð Ý"Ø% {Ð3Øñô ð ð ˆtr=   c                óÂ   — t          | j        t          ¦  «        r| j        dk    r|| j         d …         S t          | j        ¦  «        r|                      |¦  «        S |S )Nr   )ru   ri  rŽ  rÁ  )r9   rC   s     r:   r½  z)AgentExecutor._prepare_intermediate_steps�  sl   € õ �tÔ3µSÑ9Ô9ð	&àÔ,¨qÒ0Ð0à% tÔ'CÐ&CÐ&EÐ&EÔFÐFÝ�dÔ2Ñ3Ô3ð 	&Ø×/Ò/Ð0BÑCÔCÐCà%Ð%r=   ÚinputúUnion[Dict[str, Any], Any]rÝ   úOptional[RunnableConfig]úIterator[AddableDict]c              +  óú   K  — t          |¦  «        }t          | ||                     d¦  «        f|                     d¦  «        |                     d¦  «        |                     d¦  «        ddœ|¤Ž}|D ]}|V — ŒdS ©z9Enables streaming over steps taken to reach final output.rE   r„  ÚmetadataÚrun_nameT)r„  rü  rý  Úyield_actionsN©r   r#   Úget©r9   rö  rÝ   rF   ÚiteratorÚsteps         r:   ÚstreamzAgentExecutor.streamª  s¥   è è € õ ˜vÑ&Ô&ˆÝ(ØØØ�JŠJ�{Ñ#Ô#ð	
ð —’˜FÑ#Ô#Ø—Z’Z 
Ñ+Ô+Ø—Z’Z 
Ñ+Ô+Øð	
ð 	
ð ð	
ð 	
ˆð ð 	ð 	ˆDØˆJˆJˆJˆJð	ð 	r=   úAsyncIterator[AddableDict]c               ó  K  — t          |¦  «        }t          | ||                     d¦  «        f|                     d¦  «        |                     d¦  «        |                     d¦  «        ddœ|¤Ž}|2 3 d{V —†}|W V — Œ6 dS rû  rÿ  r  s         r:   ÚastreamzAgentExecutor.astream¿  s¿   è è € õ ˜vÑ&Ô&ˆÝ(ØØØ�JŠJ�{Ñ#Ô#ð	
ð —’˜FÑ#Ô#Ø—Z’Z 
Ñ+Ô+Ø—Z’Z 
Ñ+Ô+Øð	
ð 	
ð ð	
ð 	
ˆð #ð 	ð 	ð 	ð 	ð 	ð 	ð 	�$ØˆJˆJˆJˆJˆJð #˜(˜(s   Á4Br@   )
ra  r`  rc   rd   rE   r+   rF   r   r1   r_  rP  r¡   )
rá   r   rE   r+   r�  rb  r‚  rb  r1   r#   r›   )rE  rV   r1   r!   )r�  rŽ  r�  r�  r1   rb  )r6   r   rC   rú   rV  r“  r1   r(  )r6   r   rC   rú   rV  rž  r1   r(  )r.  r¡  r1   r¢  )r©  rª  r«  r¬  rá   r¬  rC   rD   rV  r“  r1   r¢  )r©  rª  r«  r¬  rá   r¬  rC   rD   rV  r“  r1   r²  )r©  rª  r«  r¬  rá   r¬  rC   rD   rV  rž  r1   r¢  )r©  rª  r«  r¬  rá   r¬  rC   rD   rV  rž  r1   rÎ  )rá   r¬  rV  r“  r1   r(  )rá   r¬  rV  rž  r1   r¬  )rç  rð  r1   rñ  )rC   rD   r1   rD   )rö  r÷  rÝ   rø  rF   r   r1   rù  )rö  r÷  rÝ   rø  rF   r   r1   r  )&r£   r¤   r¥   r¦   rè   rc  re  rf  rU   rg  ri  r¨   rk  r   rq  rt  r|  r–   r€  r…  r§   rT   rˆ  rŒ  r’  r�  r   r¨  r±  r¯  rÍ  rÌ  rê  rï  rä  r½  r  r  r7   r=   r:   r_  r_  E  sÒ  € € € € € € Ø$Ð$à=Ð=Ð=Ñ=ð3àÐÐÑØ-Ø&+ÐÐ+Ð+Ð+Ñ+ð3à$&€NÐ&Ð&Ð&Ñ&ð9ð +/ÐÐ.Ð.Ð.Ñ.ðð ")ÐÐ(Ð(Ð(Ñ(ðð 	ð ð ð ð ñ ðð 	ð ð ð ð ñ ð ð
  $ð	
ð 
ð 
ð 
ñ „[ð
ð €^ÑÔðð ð ñ Ôðð €^ÑÔðð ð ñ Ôðð €^˜ÐÑÔðð ð ñ Ôðð"
ð 
ð 
ð 
ð*ð *ð *ð *ð  $ð
ð
 "'Øð
ð 
ð 
ð 
ð 
ð 
ð" ð%ð %ð %ñ „Xð%ð ð,ð ,ð ,ñ „Xð,ð>ð >ð >ð >ð	ð 	ð 	ð 	ð =Að	ð ð ð ð ð" BFð	ð ð ð ð ð	ð 	ð 	ð 	ð" =Að
ð 
ð 
ð 
ð 
ð6 =AðgJð gJð gJð gJð gJð^ BFð
ð 
ð 
ð 
ð 
ð6 BFðsð sð sð sð sðp =Að-Qð -Qð -Qð -Qð -Qðd BFð<ð <ð <ð <ð <ð|ð ð ð ð$&ð &ð &ð &ð  ,0ðð ð ð ð ð0 ,0ðð ð ð ð ð ð r=   r_  )Zr¦   Ú
__future__r   rÓ  r�   Úloggingrâ  Úabcr   Úpathlibr   Útypingr   r   r   r	   r
   r   r   r   r   r   r‘   Úlangchain_core._apir   Úlangchain_core.agentsr   r   r   Úlangchain_core.exceptionsr   Úlangchain_core.language_modelsr   Úlangchain_core.messagesr   Úlangchain_core.output_parsersr   Úlangchain_core.promptsr   Úlangchain_core.prompts.few_shotr   Úlangchain_core.prompts.promptr   Úlangchain_core.pydantic_v1r   r   Úlangchain_core.runnablesr   r   r   Úlangchain_core.runnables.utilsr    Úlangchain_core.toolsr!   Úlangchain_core.utils.inputr"   Úlangchain.agents.agent_iteratorr#   Úlangchain.agents.agent_typesr$   Úlangchain.agents.toolsr%   Úlangchain.callbacks.baser&   Úlangchain.callbacks.managerr'   r(   r)   r*   r+   Úlangchain.chains.baser,   Úlangchain.chains.llmr-   Úlangchain.utilities.asyncior.   Ú	getLoggerr£   r2  r0   r¬   r¼   rÃ   rÆ   rê   rô   r  rR  r¡  r_  r7   r=   r:   ú<module>r$     sc  ðØ KÐ KØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <Ø /Ð /Ð /Ð /Ð /Ð /Ø :Ð :Ð :Ð :Ð :Ð :Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø AÐ AÐ AÐ AÐ AÐ AØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø )Ð )Ð )Ð )Ð )Ð )Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8à AÐ AÐ AÐ AÐ AÐ AØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø .Ð .Ð .Ð .Ð .Ð .Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ð ð ð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø )Ð )Ð )Ð )Ð )Ð )Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7à	ˆÔ	˜8Ñ	$Ô	$€ðJð Jð Jð Jð J˜Iñ Jô Jð JðZzð zð zð zð z˜9ñ zô zð zðz3ð 3ð 3ð 3ð 3Ð(¨¨{¸KÐ/GÔ)HÔIñ 3ô 3ð 3ð4ð 4ð 4ð 4ð 4Ø�U˜4 Ô,¨kÐ9Ô:Ô;ñ4ô 4ð 4ðFð Fð Fð Fð FÐ)ñ Fô Fð FðRIð Ið Ið Ið IÐ3ñ Iô Ið IðX €Øð	-ð ðñ ô ðO
ð O
ð O
ð O
ð O
Ð0ñ O
ô O
ñô ðO
ðd €Øð	-ð ðñ ô ð\
ð \
ð \
ð \
ð \
Ð!ñ \
ô \
ñô ð\
ð~ð ð ð ð �Hñ ô ð ð. �e˜K¨°iÐ?Ô@ÔA€ðM
ð M
ð M
ð M
ð M
�Eñ M
ô M
ð M
ð M
ð M
r=   